drush migrate:status throws error

Created on 14 July 2025, 21 days ago

Problem/Motivation

After upgraded from 6.0.5 to 6.0.7, dursh migrate:status command throws the following error. Any help is appreciated. Thanks.

TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147 in Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml->__construct() (line 105 of /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php).
 [warning] Drush command terminated abnormally.

Steps to reproduce

drush migrate:status

Proposed resolution

Remaining tasks

User interface changes

API changes

Data model changes

๐Ÿ› Bug report
Status

Active

Version

6.0

Component

Plugins

Created by

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @evac9
  • The patch might look something like this.

  • heddn Nicaragua

    To get committed, this will need to be rolled into an MR so tests can execute.

  • First commit to issue fork.
  • Merge request !133Created MR. โ†’ (Merged) created by mrinalini9
  • ๐Ÿ‡ฎ๐Ÿ‡ณIndia mrinalini9 New Delhi

    Created MR, please review it.

    Thanks!

  • Pipeline finished with Failed
    19 days ago
    Total: 355s
    #548678
  • ๐Ÿ‡ท๐Ÿ‡ดRomania bogdan.dinu

    In PHP 8.2+ there is still a deprecation warning:
    Deprecated function: Creation of dynamic property Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::$fileSystem is deprecated in Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml->__construct() (line 108 of modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php).

    I updated the patch to include the $fileSystem property definition.

  • heddn Nicaragua

    Can we add a test or something to confirm the problem and fix please?

  • ๐Ÿ‡บ๐Ÿ‡ธUnited States diamondsea

    Tested #7 on Drupal 10.5.1 and Migrate Plus 6.0.7, works as expected.

  • heddn Nicaragua

    Would still be nice to add a unit test.

  • ๐Ÿ‡ณ๐Ÿ‡ฟNew Zealand xurizaemon ลŒtepoti, Aotearoa ๐Ÿ
  • ๐Ÿ‡ณ๐Ÿ‡ฟNew Zealand xurizaemon ลŒtepoti, Aotearoa ๐Ÿ
  • ๐Ÿ‡ณ๐Ÿ‡ฟNew Zealand xurizaemon ลŒtepoti, Aotearoa ๐Ÿ

    Ran into this myself, for me it reproduces when executing any migration that has data_parser=xml.

    @heddn I think there is existing coverage for this, eg tests/src/Kernel/Plugin/migrate_plus/data_parser/XmlTest.php?

    Testing locally, 6.0.x @ 46d05c256

    www-data@da85fa35e6fa:/app$ phpunit -c /app/phpunit.xml web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/XmlTest.php
    PHPUnit 9.6.23 by Sebastian Bergmann and contributors.
    
    Testing Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest
    SEEEEEEE                                                            8 / 8 (100%)
    
    Time: 00:09.863, Memory: 10.00 MB
    
    There were 7 errors:
    
    1) Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest::testCurrentUrl
    TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147
    
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:105
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:147
    /app/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:21
    /app/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:272
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:93
    /app/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
    
    2) Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest::testReduceSingleValue
    TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147
    
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:105
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:147
    /app/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:21
    /app/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:272
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:112
    /app/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
    
    3) Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest::testSingleValueWithAttributes
    TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147
    
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:105
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:147
    /app/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:21
    /app/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:272
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:138
    /app/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
    
    4) Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest::testMultipleItems
    TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147
    
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:105
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:147
    /app/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:21
    /app/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:272
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:171
    /app/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
    
    5) Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest::testPredicateMatch with data set "odd parity" ('/items/item[@parity="odd"]', array(array('Value 1'), array('Value 3')))
    TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147
    
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:105
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:147
    /app/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:21
    /app/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:272
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:206
    /app/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
    
    6) Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest::testPredicateMatch with data set "even parity" ('/items/item[@parity="even"]', array(array('Value 2')))
    TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147
    
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:105
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:147
    /app/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:21
    /app/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:272
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:206
    /app/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
    
    7) Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest::testPredicateMatch with data set "special attribute" ('/items/item[condition[@specia...rue"]]', array(array('Special value')))
    TypeError: Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::__construct(): Argument #4 ($file_system) must be of type Drupal\Core\File\FileSystemInterface, Drupal\migrate_plus\DataFetcherPluginManager given, called in /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php on line 147
    
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:105
    /app/web/modules/contrib/migrate_plus/src/Plugin/migrate_plus/data_parser/Xml.php:147
    /app/web/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php:21
    /app/web/core/lib/Drupal/Component/Plugin/PluginManagerBase.php:83
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:272
    /app/web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/BaseXml.php:206
    /app/vendor/phpunit/phpunit/src/Framework/TestResult.php:729
    
    ERRORS!
    Tests: 8, Assertions: 0, Errors: 7, Skipped: 1.
    

    With !133 @ a9f469bf

    www-data@da85fa35e6fa:/app$ phpunit -c /app/phpunit.xml web/modules/contrib/migrate_plus/tests/src/Kernel/Plugin/migrate_plus/data_parser/XmlTest.php
    PHPUnit 9.6.23 by Sebastian Bergmann and contributors.
    
    Testing Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser\XmlTest
    S.......                                                            8 / 8 (100%)
    
    Time: 00:09.940, Memory: 10.00 MB
    
    OK, but incomplete, skipped, or risky tests!
    Tests: 8, Assertions: 10, Skipped: 1.
    
    Unsilenced deprecation notices (7)
    
      7x: Creation of dynamic property Drupal\migrate_plus\Plugin\migrate_plus\data_parser\Xml::$fileSystem is deprecated
        3x in XmlTest::testPredicateMatch from Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser
        1x in XmlTest::testCurrentUrl from Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser
        1x in XmlTest::testReduceSingleValue from Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser
        1x in XmlTest::testSingleValueWithAttributes from Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser
        1x in XmlTest::testMultipleItems from Drupal\Tests\migrate_plus\Kernel\Plugin\migrate_plus\data_parser
    
  • Pipeline finished with Failed
    9 days ago
    Total: 281s
    #557451
  • Pipeline finished with Success
    9 days ago
    Total: 276s
    #557453
  • Pipeline finished with Skipped
    7 days ago
    #558770
  • heddn Nicaragua

    Thanks for the fixes here.

Production build 0.71.5 2024