Error messages after start, reason unknown, system was running for month with no changes no issues

  • Platform information:
    • Hardware: Intel NUC
    • OS: Microsoft 10
    • Java Runtime Environment: jre and jde 1.8.0_201
    • openHAB version: 2.5.4
  • Issue of the topic:
    After implementing the instruction given, I have still the problem that OH 2 asks for the rrd4j persistance.

openhab> org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-persistence-rrd4j; type=karaf.feature; version="[1.14.0,1.14.0]"; filter:="(&(osgi.identity=openhab-persistence-rrd4j)(type=karaf.feature)(version>=1.14.0)(version<=1.14.0))"

Did anything change here? Thanks for any hints.

No screenshots please, they’re unreadable and un-searchable.

You probably use remote addons, search the forum for this, update at least to latest OH2.

Reading your answer makes me feel like a young student, taught what he did wrong. For your information, I am 65 and not the computer genius you seem to have expected here.

So I retry to ask a good question: Does anybody in the community here know by own experience why all of a sudden such error messages appear? The system works, I did noch change any parameter and suddenly this message appears, which was not there before.

So what is apache.felix.resolver looking for it does not find? Here the messages in Text format:

org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=bundle; type=karaf.feature; version="[4.2.7,4.2.7]"; filter:="(&(osgi.identity=bundle)(type=karaf.feature)(version>=4.2.7)(version<=4.2.7))"
at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343)
at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:392)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:378)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:332)
at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257)
at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:393)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1062)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:998)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

Any helpful input is highly appreciated.

Sorry it was not my intention to make you feel like that.
But the bottom line is you are expected follow a couple of rules (which I linked to) and to show some more effort of your own in analyzing your problem before you ask for help - such as to search the forum for text snippets of your error message.
My “remote addons” was not meant to be the explanation of a solution but a hint how to proceed. Search the forum for that term.

Reasoning behind is that most OH installations are setup to download addon extensions on start and the dependencies with that and solution to it are a complicated matter, even more so with OH2 and on Windows, so cannot explain in a few words.
Check addons.cfg for the remote setting. Not sure where that’s located on Windoze, and it’s just a guess.
But it’s in essence the answer to your question “why does it happen all of a sudden”:
dependencies and download locations changed.
And your probably best way out of that is to upgrade to latest OH 2.5.12.

Ok, thanks. As I am remote, I will have to get to my holiday location physically to make the update.
Sooner or late I have anyway the intention to change to V 3.0.x. For that I like to have a bit more time locally, just in case. So as first step I will upgrade to 2.5.12 like in powershell like this…

cd C:\openHAB
. .\runtime\bin\update.ps1
Update-openHAB -OHVersion 2.5.12

Thank you for your help, and likewise, no bad feelings, the voluntary work is highly appreciated :slight_smile:

Good move, but maybe not quite as simple as that because of the external repository change to fetch the update from,
Start here-

Many thanks, very helpful! Will do.

Sorry, me again:

As Powershell will not allow me to run scripts from a remote location I tried as quickfix to change the respective repository in the current version 2.5.6… Still gettting error messages…

My Change marked the line above with
#CHANGED THIS LINE TO:
in userdata/etc/org.ops4j.pax.url.mvn.cfg, as recommended as option 2
'#
'# If set to true, the following property will not allow any certificate to be used
'# when accessing Maven repositories through SSL
'#
'#org.ops4j.pax.url.mvn.certificateCheck=
'#
'# Path to the local Maven settings file.
'# The repositories defined in this file will be automatically added to the list
'# of default repositories if the ‘org.ops4j.pax.url.mvn.repositories’ property
'# below is not set.
'# The following locations are checked for the existence of the settings.xml file
'# * 1. looks for the specified url
'# * 2. if not found looks for /home/jenkins/.m2/settings.xml
'# * 3. if not found looks for /home/jenkins/jenkins-'agent1/tools/hudson.tasks.Maven_MavenInstallation/maven_latest_/conf/settings.xml
'# * 4. if not found looks for ${M2_HOME}/conf/settings.xml
'#
'# Properties prefixed with “org.ops4j.pax.url.mvn.” have
'# higher priority except element. HTTP proxies should be configured in
'# settings file
'#org.ops4j.pax.url.mvn.settings=
'#
'# Path to the local Maven repository which is used to avoid downloading
'# artifacts when they already exist locally.
'# The value of this property will be extracted from the settings.xml file
'# above, or defaulted to:
'# System.getProperty( “user.home” ) + “/.m2/repository”
'#
'org.ops4j.pax.url.mvn.localRepository=${openhab.userdata}/tmp/mvn
'#
'# Default this to false. It’s just weird to use undocumented repos
'# “false” means that http://repo1.maven.org/maven2@id=central won’t be
'# implicitly used as remote repository
'#
'org.ops4j.pax.url.mvn.useFallbackRepositories=false
'#
'# Comma separated list of repositories scanned when resolving an artifact.
'# list of repositories searched in the first place, should contain
'# ${runtime.home}/${karaf.default.repository}.
'# if “org.ops4j.pax.url.mvn.localRepository” is defined and it’s not
'# ~/.m2/repository, it’s recommended (at least for dev purposes) to add
'# ~/.m2/repository to defaultRepositories
'# each of these repositories is checked by aether as “local repository”. if
'# artifact isn’t found, “repositories” are searched next
'#
'# Those repositories will be checked before iterating through the
'# below list of repositories and even before the local repository
'# A repository url can be appended with zero or more of the following flags:
'# @snapshots : the repository contains snaphots
'# @noreleases : the repository does not contain any released artifacts
'#
'# The following property value will add the system folder as a repo.
'#
'org.ops4j.pax.url.mvn.defaultRepositories=
'${karaf.home.uri}${karaf.default.repository}@id=system.repository@snapshots,
'${karaf.data.uri}tmp/kar@id=kar.repository@multi@snapshots,
'${karaf.base.uri}${karaf.default.repository}@id=child.system.repository@snapshots
'#
'# if “defaultLocalRepoAsRemote” is set to any value, localRepository will be
'# added to the list of remote repositories being searched for artifacts
'#
'#org.ops4j.pax.url.mvn.defaultLocalRepoAsRemote = true
'#
'# Comma separated list of repositories scanned when resolving an artifact.
'# list of repositories searched after resolution fails for “defaultRepositories”
'# These are true remote repositories accessed using maven/aether/wagon
'# mechanisms. If any repository contains required artifact, it is then written
'# to “localRepository”
'#
'# if this list is prepended with ‘+’ sign, all repositories from active
'# profiles defined in effective settings.xml file will be appended to this
'# list
'# The default list includes the following repositories:
'# http://repo1.maven.org/maven2@id=central
'# http://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases
'# ‘https://oss.sonatype.org/content/repositories/snapshots@id=sonatype.snapshots.deploy@snapshots@noreleases
'# https://oss.sonatype.org/content/repositories/ops4j-'snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
'# A repository url can be appended with zero or more of the following flags:
'# @snapshots : the repository contains snapshots
'# @noreleases : the repository does not contain any released artifacts
'# @id=repository.id : the id for the repository, just like in the
'# settings.xml this is optional but recommended
'#
'# This contains the openHAB and default repositories.
'#
'#org.ops4j.pax.url.mvn.repositories = https://openhab.jfrog.io/openhab/libs-release@id=openhab,https://openhab.jfrog.io/openhab/libs-release@id=openhab@snapshots
'#CHANGED THIS LINE TO:
'org.ops4j.pax.url.mvn.repositories = https://openhab.jfrog.io/openhab/libs-release@id=openhab,https://jcenter.bintray.com/@id=jcenter,https://openhab.jfrog.io/openhab/libs-release@id=openhab@snapshots
'#
'# Global policies override repository-specific settings (@checksum=…, @update=…, '@releasesUpdate=…, …)
'#
'#org.ops4j.pax.url.mvn.globalUpdatePolicy = daily
'#org.ops4j.pax.url.mvn.globalChecksumPolicy = warn
'#
'# socket and connection configuration (pax-url-aether 2.5.0)
'#
'# default value for connection and read timeouts, when socket.readTimeout and socket.connectionTimeout
'# are not specified
'org.ops4j.pax.url.mvn.timeout = 5000
'# timeout in ms when establishing http connection during artifact resolution
'org.ops4j.pax.url.mvn.socket.connectionTimeout = 5000
'# timeout in ms when reading data after connecting to remote repository
'org.ops4j.pax.url.mvn.socket.readTimeout = 30000
'# SO_KEEPALIVE option for sockets, defaults to false
'org.ops4j.pax.url.mvn.socket.keepAlive = false
'# SO_LINGER option for sockets, defaults to -1
'org.ops4j.pax.url.mvn.socket.linger = -1
'# SO_REUSEADDR option for sockets, defaults to false
'org.ops4j.pax.url.mvn.socket.reuseAddress = false
'# TCP_NODELAY option for sockets, defaults to true
'org.ops4j.pax.url.mvn.socket.tcpNoDelay = true
'# Configure buffer size for HTTP connections (output and input buffers), defaults to 8192 bytes
'org.ops4j.pax.url.mvn.connection.bufferSize = 8192
'# Number of connection retries after failure is detected in http client. httpclient uses default value “3”
'org.ops4j.pax.url.mvn.connection.retryCount = 3

Error messages:
openhab> org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-persistence-rrd4j; type=karaf.feature; version="[1.14.0,1.14.0]"; filter:="(&(osgi.identity=openhab-persistence-rrd4j)(type=karaf.feature)(version>=1.14.0)(version<=1.14.0))"
at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343)
at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:392)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:378)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:332)
at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257)
at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:393)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1062)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:998)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-persistence-rrd4j; type=karaf.feature; version="[1.14.0,1.14.0]"; filter:="(&(osgi.identity=openhab-persistence-rrd4j)(type=karaf.feature)(version>=1.14.0)(version<=1.14.0))"
at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343)
at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:392)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:378)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:332)
at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257)
at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:393)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1062)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:998)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
org.apache.felix.resolver.reason.ReasonException: Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-persistence-rrd4j; type=karaf.feature; version="[1.14.0,1.14.0]"; filter:="(&(osgi.identity=openhab-persistence-rrd4j)(type=karaf.feature)(version>=1.14.0)(version<=1.14.0))"
at org.apache.felix.resolver.Candidates$MissingRequirementError.toException(Candidates.java:1343)
at org.apache.felix.resolver.ResolverImpl.doResolve(ResolverImpl.java:392)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:378)
at org.apache.felix.resolver.ResolverImpl.resolve(ResolverImpl.java:332)
at org.apache.karaf.features.internal.region.SubsystemResolver.resolve(SubsystemResolver.java:257)
at org.apache.karaf.features.internal.service.Deployer.deploy(Deployer.java:393)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.doProvision(FeaturesServiceImpl.java:1062)
at org.apache.karaf.features.internal.service.FeaturesServiceImpl.lambda$doProvisionInThread$13(FeaturesServiceImpl.java:998)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

I’d switch to a RPi running openHABian when you move to OH3. Superior to Windoze in particular when it’s remote, and it helps with the migration to have both available, the old and a new system.

BTW, please use code fences (3 backticks before & after).

Thanks for the hint

I Have a Question for you: When you moved from Windows to OpenHABian how did you move your configutaion, the settings, the Things, Items, rules etc? Is there an instruction available in the community.
(PS: The reason I have used Windows so far, was, I have ETS for KNX on the same System and this is only available in Windows)

I never was on Windows but you should be able to create a backup with the ‘backup’ script for OH somewhere on your box, then transfer the zip file to the new box and use openhab-cli restore there.