The com_j2commercemigrator extension migrates VirtueMart products and categories, but some created records in #__content and #__categories receive:
asset_id = 0
The products are visible after migration, but they cannot be edited or saved correctly. Joomla requires every article and category to have a corresponding record in #__assets. Because these records are missing or have an invalid hierarchy, saving migrated content can produce Asset::moveByReference() errors.
The problem required manual database repair: creating the missing assets, correcting their parent_id, lft, rgt and level values, and assigning valid asset IDs back to the migrated articles and categories.
The migrator should create a valid Joomla asset for every migrated product and category and verify that no migrated record remains with asset_id = 0.