Nasty problem: Error in Log after any Default.items modification related to channel-item links


I’ve got a very nasty problem: Each and every time I modifiy my Default.items (where I have all my items) in a way which changes channel-item links I get a error logged, see below.
This happens every time when a item is assigned a new channel to link to or the existing relation is modified by adding a profile. The affected item-channel link is no longer working until a complete reboot of openHAB.
It occurs with channels of the KNX2 binding (which I use mostly) as well as with Modbus channels, so it does not seem to be related to a specific binding.
However, the KNX2 Binding seems to do a restart after every error logged as logged timeout-warnings (of sometimes unreadable data-points, caused by hardware and surely not related to this issue) indicate.

2022-01-09 21:38:19.466 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'Default.items'
2022-01-09 21:38:20.599 [ERROR] [ore.common.registry.AbstractRegistry] - Cannot inform the listener "org.openhab.core.thing.internal.ChannelLinkNotifier@42dbdbb0" about the "UPDATED" event: null
java.lang.NullPointerException: null
	at java.util.Objects.requireNonNull( ~[?:?]
	at org.openhab.binding.knx.internal.handler.DeviceThingHandler.getChannelTypeUID( ~[?:?]
	at org.openhab.binding.knx.internal.handler.DeviceThingHandler.isControl( ~[?:?]
	at org.openhab.binding.knx.internal.handler.DeviceThingHandler.channelLinked( ~[?:?]
	at org.openhab.core.thing.internal.ChannelLinkNotifier.lambda$3( ~[?:?]
	at ~[?:?]
	at org.openhab.core.thing.internal.ChannelLinkNotifier.added( ~[?:?]
	at org.openhab.core.thing.internal.ChannelLinkNotifier.updated( ~[?:?]
	at org.openhab.core.thing.internal.ChannelLinkNotifier.updated( ~[?:?]
	at org.openhab.core.common.registry.AbstractRegistry.notifyListeners( ~[?:?]
	at org.openhab.core.common.registry.AbstractRegistry.notifyListenersAboutUpdatedElement( ~[?:?]
	at ~[?:?]
	at ~[?:?]
	at org.openhab.core.common.registry.AbstractRegistry.updated( ~[?:?]
	at org.openhab.core.common.registry.AbstractRegistry.updated( ~[?:?]
	at org.openhab.core.common.registry.AbstractProvider.notifyListeners( ~[?:?]
	at org.openhab.core.common.registry.AbstractProvider.notifyListenersAboutUpdatedElement( ~[?:?]
	at org.openhab.core.model.thing.internal.GenericItemChannelLinkProvider.createItemChannelLink( ~[?:?]
	at org.openhab.core.model.thing.internal.GenericItemChannelLinkProvider.processBindingConfiguration( ~[?:?]
	at org.openhab.core.model.item.internal.GenericItemProvider.internalDispatchBindings( ~[?:?]
	at org.openhab.core.model.item.internal.GenericItemProvider.internalDispatchBindings( ~[?:?]
	at org.openhab.core.model.item.internal.GenericItemProvider.processBindingConfigsFromModel( ~[?:?]
	at org.openhab.core.model.item.internal.GenericItemProvider.modelChanged( ~[?:?]
	at org.openhab.core.model.core.internal.ModelRepositoryImpl.notifyListeners( ~[?:?]
	at org.openhab.core.model.core.internal.ModelRepositoryImpl.addOrRefreshModel( ~[?:?]
	at org.openhab.core.model.core.internal.folder.FolderObserver.checkFile( ~[?:?]
	at org.openhab.core.model.core.internal.folder.FolderObserver.processWatchEvent( ~[?:?]
	at org.openhab.core.service.WatchQueueReader.lambda$3( ~[?:?]
	at java.util.concurrent.Executors$ [?:?]
	at [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker( [?:?]
	at java.util.concurrent.ThreadPoolExecutor$ [?:?]
	at [?:?]

This problem began to show some time ago, I first ignored it, as I did not notice its consequences. So I now can’t track back to what change caused this.

The hex-numbers part of the “ChannelLinkNotifier” after the “@” in first error log line


is always the same, no matter which item I change, until a reboot. Then it changes to a seemingly random number, which then stays the same again, even if I continue to modifiy different item-channel links. I always get the error and it is always the same.

Example: I got the log entry above when I just changed the line

DateTime Garagentor_Zeitstempel "letzte Torbewegung [%1$tA, %1$td.%1$tm.%1$tY %1$tT]" <calendar>


DateTime Garagentor_Zeitstempel "letzte Torbewegung [%1$tA, %1$td.%1$tm.%1$tY %1$tT]" <calendar> { channel="knx:device:bridge:generic:Garagentor_In_Bewegung" [profile="system:timestamp-change"] }

with the intention of replacing the rule which currently updates the item by a profile.

What I’ve tried already:

And I’m really running out of ideas now. The logged error has no pointers for me, so I don’t even know where to start looking.

  • Platform information:
    • Hardware: Synology NAS
    • OS: Offical openHAB Docker Image
    • openHAB version: 3.2.0

I’m grateful for any advice.



OK, found it after many hours of searching: it was caused by an item linked to a non-existing channel of the KNX-Binding.
Tracked it down by successively commenting out all of my items until the error was gone.
Thanks to @Udo_Hartmann whose advice in this thread gave me the pointer into the right direction, the KNX-Binding.