Random Config UUIDs Break Iterative Drupal 7-to-10 Migration Workflows
An iterative Drupal 7 to Drupal 10 migration project reported that a routine configuration export resulted in 2,525 files appearing changed, even though no migration logic or data mappings had been modified. The differences stemmed entirely from newly generated configuration UUIDs created during a fresh site installation. Because the project relied on git diff as its primary validation mechanism, the resulting UUID churn effectively removed the workflow’s safety net.
The migration followed a strict install–migrate–export–diff cycle, with clean reinstalls required to prevent duplicate content and false positives during testing. However, each drush site:install generated new random UUIDs for every configuration entity. As a result, nearly all YAML files in the configuration sync directory appeared modified even when their settings were identical. Over time, the diff noise accumulated across hundreds of commits, making code review and regression tracking significantly more difficult.
Attempts to mitigate the problem using checksum-based database snapshots improved iteration speed but did not resolve the instability in configuration diffs. Any change to the installation script invalidated the snapshot and triggered a fresh reinstall, producing another full set of regenerated UUIDs. The project concluded that deterministic UUID generation would be necessary to maintain meaningful configuration comparisons in reinstall-driven migration workflows.
The analysis was published by CodeLift and written by Niels de Feyter. The article forms the first part of a planned series examining the engineering approach behind deterministic configuration UUIDs.

