A custom post type registered without show_in_rest opens in the classic editor even on 5.0, silently, because the new editor has no way to load or save it.
register_post_type( 'case_study', array(
'public' => true,
'show_in_rest' => true,
'rest_base' => 'case-studies',
'supports' => array( 'title', 'editor', 'custom-fields' ),
) );
The fallback is helpful and confusing in equal measure: nothing errors, so the impression is that the new editor does not support custom post types at all. custom-fields in the supports array is separately required for register_meta to be writable through the API, which is an unrelated flag that produces an identical-looking failure. Setting rest_base explicitly is worth doing because the default is the post type name, and post type names are limited to twenty characters in a way URLs are not.