Upgrade z-wave from 2.5.7 to Z-Wave 2.5.13 broke adding z-wave devices

Hi All,
I’ve been coasting with my Openhabian 2.5.7 (RPi4) system for the past year, and as usual, buying new hardware prompted me to try update things.
I wanted to update my zwave binding, which I did manually as the script didn’t seem to work gain for myself.

openhab-cli console
bundle:uninstall org.openhab.binding.zwave    (removed the current zwave binding)
list -s | grep zwave    (to confirm it is fully removed, sometimes there are multiple versions installed)
logout

cd /usr/share/openhab2/addons
wget "https://ci.openhab.org/view/Integration%20Builds%20(2.5.x)/job/openHAB2.5.x-Zwave/lastStableBuild/artifact/target/org.openhab.binding.zwave-2.5.13-SNAPSHOT.jar"

running list -s | grep zwave from karaf shows this was successful
my z-wave devices are updating and acting as expected, per the log and using my system.

WHen I try to add a device via paperui, I get a java error:

2021-11-18 22:02:27.491 [WARN ] [org.eclipse.jetty.server.HttpChannel] - /rest/discovery/bindings/zwave/scan

javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.IncompatibleClassChangeError: Expected static field org.openhab.binding.zwave.discovery.ZWaveDiscoveryService.scheduler

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:88) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.Server.handle(Server.java:494) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

Caused by: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.IncompatibleClassChangeError: Expected static field org.openhab.binding.zwave.discovery.ZWaveDiscoveryService.scheduler

	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489) ~[?:?]

	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

	at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

	... 15 more

Caused by: org.glassfish.jersey.server.ContainerException: java.lang.IncompatibleClassChangeError: Expected static field org.openhab.binding.zwave.discovery.ZWaveDiscoveryService.scheduler

	at org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:278) ~[?:?]

	at org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:260) ~[?:?]

	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:509) ~[?:?]

	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334) ~[?:?]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[?:?]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[?:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[?:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[?:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[?:?]

	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[?:?]

	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[?:?]

	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[?:?]

	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) ~[?:?]

	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

	at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

	... 15 more

Caused by: java.lang.IncompatibleClassChangeError: Expected static field org.openhab.binding.zwave.discovery.ZWaveDiscoveryService.scheduler

	at org.openhab.binding.zwave.discovery.ZWaveDiscoveryService.startScan(ZWaveDiscoveryService.java:93) ~[?:?]

	at org.eclipse.smarthome.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:209) ~[?:?]

	at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:382) ~[?:?]

	at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:367) ~[?:?]

	at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:216) ~[?:?]

	at org.eclipse.smarthome.io.rest.core.internal.discovery.DiscoveryResource.scan(DiscoveryResource.java:97) ~[?:?]

	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_222]

	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_222]

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]

	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]

	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[?:?]

	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[?:?]

	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[?:?]

	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) ~[?:?]

	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[?:?]

	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[?:?]

	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[?:?]

	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[?:?]

	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) ~[?:?]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[?:?]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[?:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[?:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[?:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[?:?]

	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[?:?]

	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[?:?]

	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[?:?]

	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) ~[?:?]

	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) ~[?:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) ~[?:?]

	at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) ~[?:?]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) ~[bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) ~[bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) ~[bundleFile:?]

	... 15 more

I tried stopping and restarting openhab, and the same error happens each time I try to add a z-wave device. In PaperUI the screen stays frozen on the spinning circle way beyond what it would have timed out.

I then went into openhabian-config , updated the config tool, and updated the system, apparently successfully (in case there was background dependencies changes).
This still didn’t do the trick.

I tried to update to the latest 2.5.x stable branch, but this didn’t work, which I figure was due to the popup message with the config tool about the 2.5 stable branch being phased out.

I then decided, well, why not migrate to OH3. Possibly fortunately, the upgrade tool wasn’t able to do this - not sure if there was a network error or what, but the upgrade couldn’t start. This means I get some sleep tonight, and can plan this out a bit more.
Ideally, I’d like to get the 2.5.13 binding working on my OH 2.5.7 system, and then plan a fresh install and configuration of an OH3 system. It will probably be a bit of a hassle, but with a spare drive with the working previous system, I’d feel more comfortable jumping into it.

My question: I can’t find anything about this error online with searching the error. Can anyone suggest a starting point to fix this java error for the 2.5.13 z-wave binding?

Thanks

edit: as expected, the same problem occurs in habmin, with the addition of a popup stating discovery failed for zwave binding

This sounds like it is related to this

I doubt it’s related to this - that happened a lot later than OH2 and meant that the artefacts would not be available

My guess is that something changed in the core between these versions given that the error is an issue with class compatibility. Probably it means that there was an update that changed class versions or a binary incompatibility between versions which if so is probably not something you can get around.

Thanks Chris,
That was the direction I had been thinking, but was hoping on a limb there would be an obvious ‘this version had the change’ recollection to point to a concrete stopgap fix. That’s fine, I know the fix is to get out of the dim ages (not quite dark, but…)

In the interim (as I’ve managed to make my network quite depended-on for a variety of details, and want to plan the transition for when I have the most time), I was hoping to be able to step back versions of the binding until I found one that worked and hoped it was late enough to include the device. Looking at the openHAB2.5.x-ZWave [Jenkins] page, I can see the latest stable build, but can’t find a way to download older versions. Hacking the URI for the version number didn’t work either. Is it possible to find the older versions (ideally 2.5.11 ) to download somewhere?

If this doesn’t work, I’ll likely look into the bintray workarounds to get OH up to 2.5.13 to work with the zwave binding I have - although given that that is likely to break a few things, I’d rather go with my intentional transition to OH3. (complicated by having to transition my influxdb database, grafana setup, minimal SD boot to SSD, and the myriad of small papercuts that makes the entire process something that I’ve put off until now)

Just ran into this problem yesterday. 2.5.12 still works for adding devices.

Here’s the jar for anyone who might need it:

2 Likes