Solved: Upgrade from OH3 to OH4 fails on Bullseye (openHAB not starting)

I am sorry, no offense meant. I appreciate the terrific work you are providing and am very thankful. I was just trying to explain my reasoning, hoping it might help others. I regurlarly use ‘apt upgrade’ to maintain security and did not expect a breaking change, but could have looked at the package list up for upgrade. This can be accomplished with:

apt list --upgradable

Thank you for the clarification. Since I cannot accomplish the upgrade to OH4 yet (as discussed below), meanwhile I use apt-mark to lock the openHAB version to 3:

sudo apt-mark hold openhab openhab-addons

Holds can be shown with

apt-mark hold showholds

Without holding any packages I have followed the FAQ instructions in order to try migrating from OH 3.4.5. to 4.0.1 (openHAB 4 migration FAQ):

  • Latest openHABian release with change in openhabian.conf, backup as initial.zip, additional change : remove comment in the line where initial.zip is specified.
  • Everything is great, I (again) have a running OH3 instance (3.4.5) based on Bullseye and openHABian 1.8. So I have successfully moved from Debian 10 to Debian 11 using the FAQ instructions maintaining my site’s functionality. However the subsequent upgrade to OH4 fails:

results in the same error I had before (‘maximum’ debug output ):

2023-08-06_19:22:05_CEST [openHABian] Adding required keys to apt... OK
2023-08-06_19:22:05_CEST [openHABian] Installing selected openHAB version...
$ apt-get update
Hit:1 http://davesteele.github.io/comitup/repo comitup InRelease
Hit:2 http://archive.raspberrypi.org/debian bullseye InRelease
Hit:3 http://raspbian.raspberrypi.org/raspbian bullseye InRelease
Hit:4 https://deb.nodesource.com/node_18.x bullseye InRelease
Reading package lists... Done

$ apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout= --option Dpkg::Options::=--force-confnew openhab= openhab-addons=
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Version '' for 'openhab' was not found
E: Version '' for 'openhab-addons' was not found
FAILED

It instructs apt to install “openhab” and “openhab-addons” each with an empty version information "= ".

So instead, I tried option 40->41, the config script claims that I am now running the stable version. The same apt-get install line is called but now the versions are specified:

$ apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout= --option Dpkg::Options::=--force-confnew openhab=4.0.1-1 openhab-addons=4.0.1-1

However: frontail / openhab.log show errors, the webserver is down, OH does not function anymore. There are several similar errors, this is the first:

2023-08-06 19:59:52.281 [ERROR] [Events.Framework                    ] - FrameworkEvent ERROR

org.osgi.framework.BundleException: Could not resolve module: org.apache.cxf.cxf-core [66]

  Unresolved requirement: Import-Package: com.sun.msv.grammar; version="[2013.6.0,2014.0.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: com.sun.msv.grammar.xmlschema; version="[2013.6.0,2014.0.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: com.sun.msv.reader; version="[2013.6.0,2014.0.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: com.sun.msv.reader.xmlschema; version="[2013.6.0,2014.0.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: com.sun.tools.internal.xjc.api; resolution:="optional"

  Unresolved requirement: Import-Package: com.sun.xml.internal.messaging.saaj.soap; resolution:="optional"

  Unresolved requirement: Import-Package: com.sun.xml.messaging.saaj.soap; resolution:="optional"

  Unresolved requirement: Import-Package: net.sf.cglib.proxy; version="[2.2.2,3.4.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: org.apache.aries.blueprint; version="[1.0.0,2.0.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: org.apache.aries.blueprint.mutable; version="[1.0.0,2.0.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: org.apache.aries.blueprint.services; version="[1.0.0,2.0.0)"; resolution:="optional"

  Unresolved requirement: Import-Package: org.apache.ws.commons.schema; version="[2.2.0,3.0.0)"

  Unresolved requirement: Import-Package: com.ctc.wstx.msv; version="[6.2.0,7.0.0)"; resolution:="optional"

    -> Export-Package: com.ctc.wstx.msv; bundle-symbolic-name="com.fasterxml.woodstox.woodstox-core"; bundle-version="6.2.6"; version="6.2.6"; uses:="com.ctc.wstx.api,com.sun.msv.grammar,com.sun.msv.grammar.trex,com.sun.msv.grammar.xmlschema,com.sun.msv.reader,com.sun.msv.verifier,com.sun.msv.verifier.regexp,javax.xml.parsers,javax.xml.stream,javax.xml.transform,org.codehaus.stax2.validation,org.relaxng.datatype,org.xml.sax"

       com.fasterxml.woodstox.woodstox-core [35]

         Unresolved requirement: Import-Package: com.sun.msv.grammar; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.grammar.trex; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.grammar.xmlschema; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.reader; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.reader.trex.ng; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.reader.util; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.reader.xmlschema; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.util; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.verifier; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.verifier.regexp; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: com.sun.msv.verifier.regexp.xmlschema; version="[2013.6.0,2014.0.0)"; resolution:="optional"

         Unresolved requirement: Import-Package: org.codehaus.stax2; version="[4.2.0,5.0.0)"

  Unresolved requirement: Import-Package: com.ctc.wstx.stax; version="[6.2.0,7.0.0)"; resolution:="optional"

    -> Export-Package: com.ctc.wstx.stax; bundle-symbolic-name="com.fasterxml.woodstox.woodstox-core"; bundle-version="6.2.6"; version="6.2.6"; uses:="com.ctc.wstx.api,com.ctc.wstx.cfg,com.ctc.wstx.dtd,com.ctc.wstx.io,com.ctc.wstx.sr,com.ctc.wstx.sw,com.ctc.wstx.util,javax.xml.namespace,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,org.codehaus.stax2,org.codehaus.stax2.ri"

  Unresolved requirement: Import-Package: javax.xml.ws; version="[0.0.0,3.0.0)"

    -> Export-Package: javax.xml.ws; bundle-symbolic-name="jakarta.xml.ws-api"; bundle-version="2.3.3"; version="2.3.3"; uses:="javax.xml.bind,javax.xml.bind.annotation,javax.xml.namespace,javax.xml.transform,javax.xml.ws.handler,javax.xml.ws.spi,javax.xml.ws.spi.http,org.w3c.dom"

       jakarta.xml.ws-api [53]

         Unresolved requirement: Import-Package: javax.xml.soap; version="[1.4.0,2.0.0)"

	at org.eclipse.osgi.container.Module.start(Module.java:463) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel$2.run(ModuleContainer.java:1847) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1$1.execute(EquinoxContainerAdaptor.java:136) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1840) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1781) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1745) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1667) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234) ~[org.eclipse.osgi-3.18.0.jar:?]

	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:345) ~[org.eclipse.osgi-3.18.0.jar:?]