- Platform information:
- openHAB 5.1.4
- RPI 5 8Gb Ram
- Openhabian - DEBIAN_VERSION_FULL=13.3
- Java Runtime Environment: openjdk 21.0.10 2026-01-20
- openHAB version: 5.1.4 upgraded from 5.1.3
- Issue of the topic: after upgrade none of my jruby files will load
I have a number of UI based and Files Based rules
After the upgrade to openHAB 5.1.4 I have an issue where all of the file based rules show up as ERROR: HANDLER
I have removed all the rules and added just one back to the /etc/openhab/automation/ruby folder
here it is and as you can see this is not a complex rule
The strange thing is all my UI rules that are created inside the UI continue to run as normal
I do not recall seeing any changes to openHAB 5.1.4 that would cause this
rule 'has UI Timer Refresh Rule' do
cron '0 */2 * * * ?'
run do
VERSION="1.2"
#DO_LOGGING = false
#LOGGING_PREFIX = 'hasUiRefreshTimer:'
if 'UI_Refresh_Timer'
UI_Refresh_Timer << ZonedDateTime.now
logger.info "UI Refresh Item updated"
else
logger.warn "Creating The UI Refresh Item"
items.build(:persistent) {date_time_item 'UI_Refresh_Timer' }
UI_Refresh_Timer << ZonedDateTime.now
end
end
end
I have done a clear cache using openhab-config but the result is the same
EDIT: The ONLY Message in the log file is the rule file being reloaded
2026-04-23 08:52:01.984 [INFO ] [ort.loader.AbstractScriptFileWatcher] - (Re-)Loading script '/etc/openhab/automation/ruby/hasUiRefreshTimer.rb'
EDIT: in case needed jrubyscripting info
JRuby 10.0.2.0
JRuby Scripting Library 5.47.5
ENV['GEM_HOME']: /etc/openhab/automation/ruby/.gem/10.0.2.0
ENV['RUBYLIB']: /etc/openhab/automation/ruby/lib
Script path: /etc/openhab/automation/ruby
JRuby Scripting Add-on Configuration:
=====================================
Ruby Gems
gems: openhab-scripting=~>5.0
bundle_gemfile: /etc/openhab/automation/ruby/Gemfile
check_update: true
require: openhab/dsl
Ruby Environment
gem_home: /etc/openhab/automation/ruby/.gem/{RUBY_ENGINE_VERSION}
rubylib: /etc/openhab/automation/ruby/lib
dependency_tracking: true
System Properties
local_context: singlethread
local_variable: transient
JRuby Console
console: irb
EDIT:
Also the additional logs - I see some wanting about contestants already initialised - I use the same constant name in different rules files and each may have a different value but this should NOT be and issues because each scripts constants are private ??
Loading JRuby script engine.../etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.engine.action::ActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::AudioActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::BusEventActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::EphemerisActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::PersistenceActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::ScriptExecutionActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::SemanticsActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::ThingActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/osgi.rb:28: warning: already initialized constant org.openhab.core.model.script.internal.engine.action::VoiceActionService
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant org.openhab.core.model.script.actions::Audio
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant OpenHAB::Core::Actions::Audio
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant Audio
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:36: warning: already initialized constant OpenHAB::Core::Actions::BusEvent
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant BusEvent
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant org.openhab.core.model.script.actions::Ephemeris
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant OpenHAB::Core::Actions::Ephemeris
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant Ephemeris
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant PersistenceExtensions
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:36: warning: already initialized constant OpenHAB::Core::Actions::ScriptExecution
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant ScriptExecution
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant org.openhab.core.model.script.actions::Semantics
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant OpenHAB::Core::Actions::Semantics
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant Semantics
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant org.openhab.core.model.script.actions::Things
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant OpenHAB::Core::Actions::Things
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant Things
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant org.openhab.core.model.script.actions::Voice
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:38: warning: already initialized constant OpenHAB::Core::Actions::Voice
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/actions.rb:41: warning: already initialized constant Voice
/etc/openhab/automation/ruby/.gem/10.0.2.0/gems/openhab-scripting-5.47.5/lib/openhab/core/value_cache.rb:12: warning: already initialized constant org.openhab.core.automation.module.script.rulesupport.shared::ValueCache
EDIT: I also put the JRUBY Bundle into debug and this was returned on reloading the single rule file
2026-04-23 14:53:18.002 [INFO ] [ort.loader.AbstractScriptFileWatcher] - (Re-)Loading script '/etc/openhab/automation/ruby/hasUiRefreshTimer.rb'
2026-04-23 14:53:20.106 [DEBUG] [ng.internal.JRubyScriptEngineFactory] - Scope Values: {se=org.openhab.core.automation.module.script.internal.ScriptExtensionManagerWrapperImpl@17c99a15, scriptExtension=org.openhab.core.automation.module.script.internal.ScriptExtensionManagerWrapperImpl@17c99a15}
2026-04-23 14:53:20.119 [DEBUG] [ng.internal.JRubyScriptEngineFactory] - Scope Values: {voice=org.openhab.core.voice.internal.VoiceManagerImpl@168300d8, ProwlActions=class org.openhab.binding.prowl.internal.action.ProwlActions, DOWN=DOWN, SendMailActions=class org.openhab.binding.mail.internal.action.SendMailActions, StringType=class org.openhab.core.library.types.StringType, rules=org.openhab.core.automation.internal.RuleRegistryImpl@77b6b0d2, NextPreviousType=class org.openhab.core.library.types.NextPreviousType, PLAY=PLAY, Month=class java.time.Month, ImperialUnits=class org.openhab.core.library.unit.ImperialUnits, ZonedDateTime=class java.time.ZonedDateTime, INCREASE=INCREASE, OpenClosedType=class org.openhab.core.library.types.OpenClosedType, things=org.openhab.core.thing.internal.ThingRegistryImpl@4926f34d, UP=UP, RawType=class org.openhab.core.library.types.RawType, MatterControllerActions=class org.openhab.binding.matter.internal.actions.MatterControllerActions, StringListType=class org.openhab.core.library.types.StringListType, events=org.openhab.core.automation.module.script.internal.action.BusEventImpl@201a2cba, ChromecastActions=class org.openhab.binding.chromecast.internal.action.ChromecastActions, SIUnits=class org.openhab.core.library.unit.SIUnits, itemRegistry=org.openhab.core.internal.items.ItemRegistryImpl@2e117da1, NULL=NULL, STOP=STOP, UnDefType=class org.openhab.core.types.UnDefType, ir=org.openhab.core.internal.items.ItemRegistryImpl@2e117da1, Duration=class java.time.Duration, RefreshType=class org.openhab.core.types.RefreshType, Units=class org.openhab.core.library.unit.Units, RewindFastforwardType=class org.openhab.core.library.types.RewindFastforwardType, DateTimeType=class org.openhab.core.library.types.DateTimeType, QuantityType=class org.openhab.core.library.types.QuantityType, State=interface org.openhab.core.types.State, PushoverActions=class org.openhab.binding.pushover.internal.actions.PushoverActions, DecimalType=class org.openhab.core.library.types.DecimalType, IncreaseDecreaseType=class org.openhab.core.library.types.IncreaseDecreaseType, BinaryPrefix=class org.openhab.core.library.unit.BinaryPrefix, File=class java.io.File, items=org.openhab.core.automation.module.script.internal.defaultscope.ItemRegistryDelegate@6c636891, actions=org.openhab.core.automation.module.script.internal.defaultscope.ScriptThingActionsImpl@122142cb, LGWebOSActions=class org.openhab.binding.lgwebos.internal.action.LGWebOSActions, IpCameraActions=class org.openhab.binding.ipcamera.internal.IpCameraActions, CLOSED=CLOSED, REFRESH=REFRESH, MetricPrefix=class org.openhab.core.library.unit.MetricPrefix, DECREASE=DECREASE, StopMoveType=class org.openhab.core.library.types.StopMoveType, OFF=OFF, PREVIOUS=PREVIOUS, PAUSE=PAUSE, NEXT=NEXT, REWIND=REWIND, Paths=class java.nio.file.Paths, audio=org.openhab.core.audio.internal.AudioManagerImpl@632fd3c9, URLEncoder=class java.net.URLEncoder, Files=class java.nio.file.Files, HSBType=class org.openhab.core.library.types.HSBType, MatterNodeActions=class org.openhab.binding.matter.internal.actions.MatterNodeActions, ON=ON, Path=interface java.nio.file.Path, DayOfWeek=class java.time.DayOfWeek, ZoneId=class java.time.ZoneId, DynamicsActions=class org.openhab.binding.hue.internal.action.DynamicsActions, UpDownType=class org.openhab.core.library.types.UpDownType, PercentType=class org.openhab.core.library.types.PercentType, AstroActions=class org.openhab.binding.astro.internal.action.AstroActions, OPEN=OPEN, MQTTActions=class org.openhab.binding.mqtt.internal.action.MQTTActions, SolarForecastActions=class org.openhab.binding.solarforecast.internal.actions.SolarForecastActions, NetworkActions=class org.openhab.binding.network.internal.action.NetworkActions, MOVE=MOVE, OnOffType=class org.openhab.core.library.types.OnOffType, Command=interface org.openhab.core.types.Command, lifecycleTracker=org.openhab.core.automation.module.script.LifecycleScriptExtensionProvider$LifecycleTracker@2b0b7a27, PlayPauseType=class org.openhab.core.library.types.PlayPauseType, FASTFORWARD=FASTFORWARD, PointType=class org.openhab.core.library.types.PointType, UNDEF=UNDEF, MPDActions=class org.openhab.binding.mpd.internal.action.MPDActions, ChronoUnit=class java.time.temporal.ChronoUnit}
2026-04-23 14:53:20.297 [DEBUG] [ernal.JRubyScriptEngineConfiguration] - No Gemfile is found or configured. Skipping Bundler setup.
2026-04-23 14:53:22.976 [DEBUG] [ng.internal.JRubyScriptEngineFactory] - Scope Values: {privateCache=org.openhab.core.automation.module.script.rulesupport.internal.CacheScriptExtension$ValueCacheImpl@4ab6a846, sharedCache=org.openhab.core.automation.module.script.rulesupport.internal.CacheScriptExtension$TrackingValueCacheImpl@7d42524f}
2026-04-23 14:53:23.306 [DEBUG] [penhab.automation.jrubyscripting.dsl] - openHAB JRuby Scripting Library Version 5.47.5 Loaded
