Incompatible sonatype-work database model detected : Unable to downgrade

Hello,

I am currently trying to upgrade Nexus. I managed to upgrade to 3.41 some days ago but some plugins were not compatible with this version, so i’m now trying to downgrade from 3.41 to 3.38.

My problem is that the server fails to start because of an incompatibility in the model.
I managed to downgrade most of the versions that were causing an issue but I’m not able to downgrade the version of elasticsearch.

Here is the message I get when I try to start the server :

The database model for elasticsearch is 1.4, but the latest supported by this version of nexus is 1.3

And then an exception :

2022-09-19 11:48:36,638+0200 ERROR [FelixStartLevel]  *SYSTEM org.sonatype.nexus.extender.NexusContextListener - Failed to start nexus
java.lang.IllegalStateException: Incompatible sonatype-work database model detected. Will result in failure to launch. Shutting down.
        at org.sonatype.nexus.upgrade.internal.orient.UpgradeServiceImpl.validate(UpgradeServiceImpl.java:163)
        at org.sonatype.nexus.upgrade.internal.orient.UpgradeServiceImpl.doStart(UpgradeServiceImpl.java:82)
        at org.sonatype.nexus.common.stateguard.StateGuardLifecycleSupport.start(StateGuardLifecycleSupport.java:69)
        at org.sonatype.nexus.common.stateguard.MethodInvocationAction.run(MethodInvocationAction.java:39)
        at org.sonatype.nexus.common.stateguard.StateGuard$TransitionImpl.run(StateGuard.java:193)
        at org.sonatype.nexus.common.stateguard.TransitionsInterceptor.invoke(TransitionsInterceptor.java:57)
        at org.sonatype.nexus.extender.NexusLifecycleManager.startComponent(NexusLifecycleManager.java:199)
        at org.sonatype.nexus.extender.NexusLifecycleManager.to(NexusLifecycleManager.java:111)
        at org.sonatype.nexus.extender.NexusContextListener.moveToPhase(NexusContextListener.java:319)
        at org.sonatype.nexus.extender.NexusContextListener.frameworkEvent(NexusContextListener.java:216)
        at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1597)
        at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
        at java.lang.Thread.run(Thread.java:748)

I’ve edited the config database with the orientdb console and elastic seems to be in the right version (1.3)

orientdb {db=config}> select from upgrade_model_versions

+----+-----+----------------------+---------+-----------+--------+---------+----+----+-----+-----+-----+------+--------+------+-----------------------------------+-------------+
|#   |@RID |@CLASS                |cocoapods|healthcheck|security|component|p2  |pypi|maven|conan|nuget|config|rubygems|docker|OrientBlobReconciliationLogMigrator|elasticsearch|
+----+-----+----------------------+---------+-----------+--------+---------+----+----+-----+-----+-----+------+--------+------+-----------------------------------+-------------+
|0   |#13:0|upgrade_model_versions|1.1      |1.1        |1.3     |1.15     |1.2 |1.2 |1.1  |1.1  |1.1  |1.9   |1.1     |1.1   |1.1                                |1.3          |
+----+-----+----------------------+---------+-----------+--------+---------+----+----+-----+-----+-----+------+--------+------+-----------------------------------+-------------+

I don’t really know what to do in order to resolve this issue.
Does anyone have an idea where to look ?

Regards

It is not possible to downgrade a database to an older version. You can restore from a backup taken from before the upgrade, or you can run 3.41.1 and try to resolve the problems with the plugins.

Rich

1 Like