data-migration-tool icon indicating copy to clipboard operation
data-migration-tool copied to clipboard

Return value of Migration\ResourceModel\AbstractCollection::key() must be an instance of Migration\ResourceModel\mixed, int returned

Open rickg123 opened this issue 2 years ago • 7 comments

Preconditions

  1. Magento 1.9.3.10 to Magento 2.4.5
  2. PHP 7.4 & MySQL 8.0.30 - Ubuntu 22.04.1
  3. FRESH Magento 2 install

Steps to reproduce

  1. Run - composer require magento/data-migration-tool:~2.4.5
  2. Create and configure a Migration module in app/code/Vendor/Migration following steps in official docs
  3. Check data integrity and add ignores for tables and fields that are flagged as problematic i.e. 3rd party extensions
  4. Run - php bin/magento migrate:settings --reset app/code/Vendor/Migration/etc/opensource-to-opensource/1.9.3.10/config.xml

Expected result

[2022-09-08T11:15:47.605990+00:00][INFO][mode: settings][stage: integrity check][step: Settings Step]: started 100% [============================] Remaining Time: < 1 sec [2022-09-08T11:15:47.632163+00:00][INFO][mode: settings][stage: integrity check][step: Stores Step]: started 100% [============================] Remaining Time: < 1 sec [2022-09-08T11:15:47.652288+00:00][INFO][mode: settings][stage: data migration][step: Settings Step]: started 100% [============================] Remaining Time: < 1 sec [2022-09-08T11:15:49.870886+00:00][INFO][mode: settings][stage: data migration][step: Stores Step]: started 100% [>---------------------------] Remaining Time: < 1 sec

Actual result

[2022-09-08T11:15:47.605990+00:00][INFO][mode: settings][stage: integrity check][step: Settings Step]: started 100% [============================] Remaining Time: < 1 sec [2022-09-08T11:15:47.632163+00:00][INFO][mode: settings][stage: integrity check][step: Stores Step]: started 100% [============================] Remaining Time: < 1 sec [2022-09-08T11:15:47.652288+00:00][INFO][mode: settings][stage: data migration][step: Settings Step]: started 100% [============================] Remaining Time: < 1 sec [2022-09-08T11:15:49.870886+00:00][INFO][mode: settings][stage: data migration][step: Stores Step]: started 0% [>---------------------------] Remaining Time: < 1 secReturn value of Migration\ResourceModel\AbstractCollection::key() must be an instance of Migration\ResourceModel\mixed, int returned#0 /var/www/html/magento2/vendor/magento/data-migration-tool/src/Migration/ResourceModel/AbstractCollection.php(69): Migration\ResourceModel\AbstractCollection->key() #1 /var/www/html/magento2/vendor/magento/data-migration-tool/src/Migration/ResourceModel/Destination.php(38): Migration\ResourceModel\AbstractCollection->valid() #2 /var/www/html/magento2/vendor/magento/data-migration-tool/src/Migration/Step/Stores/Data.php(118): Migration\ResourceModel\Destination->saveRecords() #3 /var/www/html/magento2/vendor/magento/data-migration-tool/src/Migration/Mode/AbstractMode.php(82): Migration\Step\Stores\Data->perform() #4 /var/www/html/magento2/vendor/magento/data-migration-tool/src/Migration/Mode/Settings.php(100): Migration\Mode\AbstractMode->runStage() #5 /var/www/html/magento2/vendor/magento/data-migration-tool/src/Migration/Mode/Settings.php(58): Migration\Mode\Settings->runData() #6 /var/www/html/magento2/vendor/magento/data-migration-tool/src/Migration/Console/MigrateSettingsCommand.php(59): Migration\Mode\Settings->run() #7 /var/www/html/magento2/vendor/symfony/console/Command/Command.php(255): Migration\Console\MigrateSettingsCommand->execute() #8 /var/www/html/magento2/vendor/magento/framework/Interception/Interceptor.php(58): Symfony\Component\Console\Command\Command->run() #9 /var/www/html/magento2/vendor/magento/framework/Interception/Interceptor.php(138): Migration\Console\MigrateSettingsCommand\Interceptor->___callParent() #10 /var/www/html/magento2/vendor/magento/framework/Interception/Interceptor.php(153): Migration\Console\MigrateSettingsCommand\Interceptor->Magento\Framework\Interception{closure}() #11 /var/www/html/magento2/generated/code/Migration/Console/MigrateSettingsCommand/Interceptor.php(77): Migration\Console\MigrateSettingsCommand\Interceptor->___callPlugins() #12 /var/www/html/magento2/vendor/symfony/console/Application.php(1009): Migration\Console\MigrateSettingsCommand\Interceptor->run() #13 /var/www/html/magento2/vendor/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand() #14 /var/www/html/magento2/vendor/magento/framework/Console/Cli.php(116): Symfony\Component\Console\Application->doRun() #15 /var/www/html/magento2/vendor/symfony/console/Application.php(149): Magento\Framework\Console\Cli->doRun() #16 /var/www/html/magento2/bin/magento(23): Symfony\Component\Console\Application->run() #17 {main}

Additional notes

The error: Return value of Migration\ResourceModel\AbstractCollection::key() must be an instance of Migration\ResourceModel\mixed, int returned

I have not been able to find anything related to this error. Is there a compatibility issue with 2.4.5?

Please advise.

rickg123 avatar Sep 08 '22 11:09 rickg123

Hi @rickg123. Thank you for your report. To speed up processing of this issue, make sure that you provided sufficient information.

Add a comment to assign the issue: @magento I am working on this


m2-assistant[bot] avatar Sep 08 '22 11:09 m2-assistant[bot]

Hi @rickg123! :wave: Thank you for collaboration. Only members of Community Contributors Team are allowed to be assigned to the issue. Please use @magento add to contributors team command to join Contributors team.

m2-assistant[bot] avatar Sep 08 '22 11:09 m2-assistant[bot]

We are experiencing the same problem, when trying a 1.9.3.6 to 2.4.5 migration, exact same stack trace and error...

And as a result, m2 stores table ends empty, and next bin/magento command fails, and the m2 installation is unusable, until you recover the dreaded stores table....

IJOL avatar Sep 19 '22 06:09 IJOL

We also have exactly the same problem, this error occurs when migrating from version 1.9.3.6 to 2.4.5, any solution?

ticbitvax avatar Sep 19 '22 13:09 ticbitvax

Same error here migrating 1.9.4.0 to 2.4.5. The magento2 implementation got stuck and unusable

jaguzmanb1 avatar Sep 21 '22 05:09 jaguzmanb1

Hi guys,

PHP 8.1 is in the System requirements for Magento 2.4.5

victor-v-rad avatar Sep 29 '22 09:09 victor-v-rad

Hi guys,

PHP 8.1 is in the System requirements for Magento 2.4.5

Thank you!

Yes I've been working on it this week and tried a PHP 8.1 server. The migration tool worked as expected when using PHP 8.1 instead of PHP 7.4. I was planning to add a note here to anyone seeing the same errors.

rickg123 avatar Sep 29 '22 10:09 rickg123