We recently upgraded our Nexus Repository Manager from version 3.85 to 3.88 (Docker image, running on AWS ECS Fargate) and encountered a critical startup failure due to H2 database corruption. We did this in our dev environment and want to understand the root cause before applying the same upgrade to production.
ERROR
Upon startup after the upgrade, Nexus failed to initialize with the following errors:
HikariPool$PoolInitializationException: Failed to initialize pool:
File corrupted while reading record: “/nexus-data/db/nexus.mv.db”.
Possible solution: use the recovery tool [90030-232]
Caused by: JdbcSQLNonTransientConnectionException:
File corrupted while reading record: “/nexus-data/db/nexus.mv.db” [90030-232]
Caused by: MVStoreException:
File is corrupted - unable to recover a valid set of chunks [2.3.232/6]
This caused a complete startup failure — Nexus could not initialize the datastore, Jetty failed to start, and the service entered a crash loop.
What is the most likely cause of this H2 corruption specifically in the context of a 3.85 → 3.88 upgrade? Is there a known H2 engine version change between these releases that could cause incompatibility with an existing database file?