This should be more like in the locale site manager:

$msg = sprintf( 'Invalid JSON as result of search for ID "%2$s" in "%1$s": %3$s', 'mshop_locale.config', $row['id'], $config );
$this->_getContext()->getLogger()->log( $msg, MW_Logger_Abstract::WARN );

If we throw an exception here, items with invalid configurations can't be fixed in the admin interface.
Could you please also change the code in the plugin manager and in the createItem() method of the catalog manager?