Most meta boxes still render in the new editor through a compatibility layer, and the ones that break do so because they rely on the DOM around them rather than on the API.
add_meta_box(
'turkerdev_shipping',
__( 'Shipping', 'turkerdev' ),
'turkerdev_render_shipping_box',
'product',
'side',
'default',
array(
'__block_editor_compatible_meta_box' => true, // it works. keep it.
'__back_compat_meta_box' => false, // not superseded yet
)
);
The two flags say different things: the first is a claim that the box functions in the new editor, and the second marks a box that has been replaced by a block and should only appear in the classic editor. Declaring them stops core guessing, and core’s guess is to warn. A box that reads $_POST in a save hook is generally fine; one that manipulates the publish panel with jQuery is generally not, and no flag will help it.