2

I'm moving a d8 config from dev to stage and I have edited system.site so that the primary UUID on the stage system is identical to the dev system; and yet drush still reports: "There were errors validating the config synchronization."

This is an initial import; so it wants to replace almost all the objects on the stage site with objects from dev which differ only by UUID. There is almost no data (just site name, etc.) This used to work fine under 8.0.0-beta12; but I recently updated to 8.0.0-beta15 (which may or may not be significant). I'm using drush tag 8.0.0-beta14.

# grep uuid configs/from_dev/system.site.yml 
uuid: c3b4a4a7-e8ab-44d2-b349-73dc5a8dea63
# drush8 @iron.stage cget system.site | grep uuid
uuid: c3b4a4a7-e8ab-44d2-b349-73dc5a8dea63
# 

I checked the whitespace and rebuilt the cache.

# drush8 @iron.stage cim from_dev
 Collection  Config                                                Operation 
             system.menu.account                                   create    
             block.block.bartik_breadcrumbs                        create    
             block.block.bartik_content                            create    

       blah.. blah.. blah..

             block.block.bartik_breadcrumbs                        delete    
             system.menu.account                                   delete
Import the listed configuration changes? (y/n): y
exception 'Drupal\Core\Config\ConfigImporterException' with message      [error]
'There were errors validating the config synchronization.' in
/usr/local/www/d8_iron_stage/d8/core/lib/Drupal/Core/Config/ConfigImporter.php:730
Stack trace:
#0
/usr/local/www/d8_iron_stage/d8/core/lib/Drupal/Core/Config/ConfigImporter.php(517):
Drupal\Core\Config\ConfigImporter->validate()
#1
/usr/local/www/d8_iron_stage/d8/core/lib/Drupal/Core/Config/ConfigImporter.php(464):
Drupal\Core\Config\ConfigImporter->initialize()
#2 /usr/local/src/drush/commands/core/config.drush.inc(622):
Drupal\Core\Config\ConfigImporter->import()
#3 /usr/local/src/drush/includes/drush.inc(719):
_drush_config_import(Object(Drupal\Core\Config\StorageComparer))
#4 /usr/local/src/drush/includes/drush.inc(705):
drush_call_user_func_array('_drush_config_i...', Array)
#5 /usr/local/src/drush/commands/core/config.drush.inc(600):
drush_op('_drush_config_i...',
Object(Drupal\Core\Config\StorageComparer))
#6 [internal function]: drush_config_import('from_dev')
#7 /usr/local/src/drush/includes/command.inc(359):
call_user_func_array('drush_config_im...', Array)
#8 /usr/local/src/drush/includes/command.inc(210):
_drush_invoke_hooks(Array, Array)
#9 [internal function]: drush_command('from_dev')
#10 /usr/local/src/drush/includes/command.inc(178):
call_user_func_array('drush_command', Array)
#11 /usr/local/src/drush/lib/Drush/Boot/BaseBoot.php(62):
drush_dispatch(Array)
#12 /usr/local/src/drush/drush.php(70):
Drush\Boot\BaseBoot->bootstrap_and_dispatch()
#13 /usr/local/src/drush/drush.php(11): drush_main()
#14 {main}
2
  • So you're importing config from beta12 in beta15? There're changes in the config schema. For example: drupal.org/node/2528178. I guess you want to run update.php on a beta15 site with a beta12 database, and then export the config.
    – jonhattan
    Commented Sep 19, 2015 at 19:46
  • No. It's a beta15 to a beta15. This is the 3rd and 4th system I've done this to (both are failing identically). The exact same well documented process worked correctly for beta12 (different site); but the failures have all occurred since I bumped up my source tree. It may have nothing to do with the upgrade. I'm just sayin'...
    – ericx
    Commented Sep 19, 2015 at 20:08

3 Answers 3

1

Drush can't properly deal with this error yet.

Use the UI, that will tell you exactly what the problem is.

For example, one common case is trying to delete a node type when you have content of that type.

5
  • Bingo! Reported by the GUI: The configuration cannot be imported because it failed validation for the following reasons: Entities exist of type Shortcut link and Default. These entities need to be deleted before importing. Not at all clear what these entities are or where they came from; but presumably they are new defaults in the beta15 install?
    – ericx
    Commented Sep 19, 2015 at 20:25
  • hm.. How do I delete these entities? I tried entity-bulk-delete but my edits to get it to work with d8 are failing. I searched the database; but there's no obvious "delete entities here" table.
    – ericx
    Commented Sep 19, 2015 at 21:06
  • Solved: (for the record) I could not find a way to delete the offending entities as the error message required. Rather, (following a suggestion from IRC) I also performed a drush cedit shortcut.set.default to set that objec'ts UUID to the same as that being imported (thereby skipping it). The error message specifies "Shortcut link" and "Default" as the two entity types; but that may be a reporting bug (mixed case and whitespace in the type names?); and I only had to edit the one.
    – ericx
    Commented Sep 19, 2015 at 22:43
  • Default might the bundle, or that might be for menu links. The shortcuts themself aren't new, but this validation possibly is new since beta12.
    – Berdir
    Commented Sep 20, 2015 at 22:12
  • 2
    For my own purposes, I just replaced the UUID in the uuid: line of shortcut.set.default.yml with null (so the line reads uuid: null), and then everything worked fine, even with site-install. Commented Dec 8, 2016 at 2:56
2

If you set the uuid to null into shortcut.set.default.yml it will also works ok.

1

To resolve this error:

Entities exist of type Shortcut link and Default. These entities need to be deleted before importing.

  • Go to admin/config/user-interface/shortcut
  • Click on 'List links' for the 'Default'
  • Delete every link you see there

Your Answer

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

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