20

When I run drush cim -y on my staging instance of my site I get the following error:

Drupal\Core\Config\ConfigImporterException: There were errors validating the config synchronization. in Drupal\Core\Config\ConfigImporter->validate() (line 728 of /var/www/xeno/docroot/core/lib/Drupal/Core/Config/ConfigImporter.php).
The import failed due for the following reasons: Site UUID in source storage does not match the target storage. Entities exist of type Paragraph and Paragraph type Image. These entities need to be deleted before importing.

This is what I did:

  1. Copied the database from staging and pulled the latest code

  2. Ran drush cex -y

  3. Committed configuration

  4. Went to staging and pull latest code

  5. Ran drush cim -y and get the error stated above

When I run drush cget system.site uuid on local and staging I get the same uuid so I am not sure why I am getting this error.

How can I fix the error?

6 Answers 6

12

You can fix this by changing your local site UUID, with Drush, as described in one of the answers for How can I import the configuration on a different site?

I also needed to run a mix of drush entity-updates -y and installing specific modules with drush en <module_name> -y before the configuration objects would be imported on a new fresh database.

As per Support for automatic entity updates has been removed, you shouldn't use drush entity-updates -y anymore.

11

Traditionally, you would use the following before importing config:

drush cset system.site uuid "6ba9bxxx-xxxx-438x-9c8x-e5x7x3d0x347"

Or with drupal console:

$ drupal config:override

Enter configuration name []:
> system.site

Enter the configuration key [uuid]:
> uuid

Enter the configuration value:
> 6ba9bxxx-xxxx-438x-9c8x-e5x7x3d0x347

A more generic solution

For people getting tired of doing this all over again. I finally got a fix on how to do this automatically. You would have to add a pre-command for config:import with drush to set the uuid. Read all about it here: https://stefvanlooveren.me/blog/fixing-systemsite-uuid-config-import-problem-drupal-8

3

Use drush config-set "system.site" uuid <UUID value>. You can confirm the value has been changed with drush cedit system.site.

To fix the shortcut error during the configuration import, use drush ev '\Drupal::entityTypeManager()->getStorage("shortcut_set")->load("default")->delete();'.

Manually edit the system.site.yml file, changing the UUID to match.

After that, the configuration import ran successfully on my port.

2

Actually, I was using SFTP deploy and the system.site.yml file wasn't present on the staging site. I just redeployed all files and the issue went away.

2

Solved! Using the Drush command. Get the site uuid from existing site the Set the UUID. That's it.

Get UUID from Source:

drush cget system.site uuid

enter image description here

Set UUID to target:

drush cset system.site uuid "c6a99459-912d-4502-b9d3-07dc6e5a240d"
0

Get UUID using: uuid:

drush cget system.site uuid

One need to paste the YML file back again to include UUID, this will resolve : /admin/config/development/configuration/single/import

enter image description here

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.