ValueError: XMLReader::open(): Argument #1 ($uri) cannot be empty in XMLReader->open()

Created on 6 June 2022, about 3 years ago
Updated 8 July 2025, 25 days ago

Problem/Motivation

Let's continue fixing issue introduced in https://www.drupal.org/project/migrate_plus/issues/3009345 β†’ , since

For migrations that have no urls configuration, like here:
- https://www.drupal.org/project/wordpress_migrate/issues/3284316 β†’
- https://git.drupalcode.org/project/wordpress_migrate/-/merge_requests/4/...

Url::construct() doesn't guarantee correct empty configuration for sourceUrls field.

  public function __construct(array $configuration, $plugin_id, $plugin_definition, MigrationInterface $migration) {
    if (!is_array($configuration['urls'])) {
      $configuration['urls'] = [$configuration['urls']];
    }
    parent::__construct($configuration, $plugin_id, $plugin_definition, $migration);

    $this->sourceUrls = $configuration['urls'];
  }

Steps to reproduce

Create migration configuration with plugin: url but without urls

source:
  plugin: url
  data_fetcher_plugin: http
  data_parser_plugin: xml
...
process:
...

Proposed resolution

Provide empty array whe urls configuration is empty.

Remaining tasks

User interface changes

N/A

API changes

N/A

Data model changes

N/A

πŸ› Bug report
Status

Needs review

Version

5.0

Component

Plugins

Created by

πŸ‡ΊπŸ‡¦Ukraine vlad.dancer Kyiv

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

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024