Three related changes, all discovered in sequence: 1. Converted all 60 tables MyISAM -> InnoDB. The datadir had just moved to GlusterFS, and MyISAM is the worst engine to put there: no crash recovery, no transactions, and it leans on file locking, which FUSE handles poorly. It also meant db-config.yaml's InnoDB tuning applied to nothing. 2. Bumped the image 6-apache -> 7-apache. LimeSurvey 6 is outside its support window; 7.1.1 is current. 3. Changed the seed-config init container from `cp -rn` to `cp -r`. application/config is a persistent volume and version.php lives in it, so no-clobber meant the stale v6 version.php survived the image upgrade: LimeSurvey read 6.17.11, concluded "DB is uptodate", and silently skipped its migration while running v7 code. With the overwrite it upgraded properly (651 -> 712). Safe because the image ships no config.php or security.php, so user config is never touched. Verified after each step: 3 surveys, 742 responses, 2 users, 17 questions. Note v7 renames response tables lime_survey_<id> -> lime_responses_<id>; that rename is why a post-upgrade count against the old name errors. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>