Marketplace bindings missing in Add-On Store

:man_shrugging:

I see no reason that just a back and restore is going to make any difference, so if you’re going to go that direction then a reinstall is sensible. I’ve never run OH from the package, so I don’t know what the likelihood is that something in the package has gotten out of sorts, but it is the troubleshooting step that I would try next.

Currently the binding has disappeared from the demo again.

Ok, I can confirm that I see the same thing in the demo this time, but I still see the marketplace in my personal OH instance, so it’s not some global outage.

Perhaps it’s time we called in @ysc on this, since it does also impact the demo server.

1 Like

Ok. I repeated with a reinstall in between//
Same results as before: no marketplace bindings

One observation: Extremely long time till add-ons appear

Maybe you can try enabling debug logging on org.openhab.core.addon.marketplace ? Perhaps an exception occurs while getting the Marketplace forum posts.

Good point. Trace logging enabled but no error in any log file.

A lot of noise in my TRACE level log file:
Maybe it is useful for the debugging:
openhab.log (244.9 KB)

I’m seeing the marketplace add-ons on both demo.openhab.org and my local instance right now, so it might be an intermittent error:

I’m guessing community.openhab.org had a temporary outage?

Right now, Marketplace bindings disappeared again from the demo.
On my local installation I haven’t seen marketplace bindings for a few weeks.

I have seen that you restarted openhab. When restarting I see also tons of logs.
@wborn : Please find below some error messages. If required I could also provide the whole debug log

2024-01-26 15:32:59.143 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider] : Component can not be activated since it is in state disabled
2024-01-26 15:32:59.146 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider] : Querying state disabled
2024-01-26 15:32:59.149 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] : Updating target filters
2024-01-26 15:32:59.151 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] : No change in target property for dependency $000: currently registered: false
2024-01-26 15:32:59.154 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] :  No existing service listener to unregister for dependency $000
2024-01-26 15:32:59.156 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] : Setting target property for dependency $000 to null
2024-01-26 15:32:59.159 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] : New service tracker for $000, initial active: false, previous references: {}, classFilter: (objectClass=org.openhab.core.storage.StorageService), initialReferenceFilter (objectClass=org.openhab.core.storage.StorageService)
...
2024-01-26 15:32:59.186 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] :  No existing service listener to unregister for dependency osgi.ds.satisfying.condition
...
2024-01-26 15:32:59.207 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] : Changed state from disabled to unsatisfiedReference
...
2024-01-26 15:32:59.232 [DEBUG] [tion.MarketplaceRuleTemplateProvider] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.automation.MarketplaceRuleTemplateProvider(48)] : Not all dependencies satisfied, cannot activate
...
2024-01-26 15:32:59.381 [DEBUG] [ommunity.CommunityBundleAddonHandler] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityBundleAddonHandler(50)] : Declared Method org.openhab.core.addon.marketplace.internal.community.CommunityBundleAddonHandler.activate([interface org.osgi.service.component.ComponentContext]) not found
...
2024-01-26 15:32:59.387 [DEBUG] [ommunity.CommunityBundleAddonHandler] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityBundleAddonHandler(50)] : Declared Method org.openhab.core.addon.marketplace.MarketplaceBundleInstaller.activate([interface org.osgi.service.component.ComponentContext]) not found
2024-01-26 15:32:59.389 [DEBUG] [ommunity.CommunityBundleAddonHandler] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityBundleAddonHandler(50)] : Locating method activate in class java.lang.Object
2024-01-26 15:32:59.391 [DEBUG] [ommunity.CommunityBundleAddonHandler] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityBundleAddonHandler(50)] : Declared Method java.lang.Object.activate([interface org.osgi.service.component.ComponentContext]) not found
2024-01-26 15:32:59.392 [DEBUG] [ommunity.CommunityBundleAddonHandler] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityBundleAddonHandler(50)] : activate method [activate] not found, ignoring
...
2024-01-26 15:32:59.427 [DEBUG] [ity.CommunityMarketplaceAddonService] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityMarketplaceAddonService(51)] : No change in target property for dependency $000: currently registered: false
2024-01-26 15:32:59.428 [DEBUG] [ity.CommunityMarketplaceAddonService] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityMarketplaceAddonService(51)] :  No existing service listener to unregister for dependency $000
2024-01-26 15:32:59.430 [DEBUG] [ity.CommunityMarketplaceAddonService] - bundle org.openhab.core.addon.marketplace:4.1.1 (156)[org.openhab.core.addon.marketplace.internal.community.CommunityMarketplaceAddonService(51)] : Setting target property for dependency $000 to null

When this happens try going to Developer Tools > API Explorer > expand “addons” > GET /addons > “Try it Out” button > type “marketplace” into the serviceId box > Execute

Do you see a 500 error or a 200 response with an empty list? Is anything added to the server logs when you click Execute?

On my production system:
I get a 200 with the information of the marketplace binding (webhook) I am currently using (see screenshot above).
No logs.

On demo system:
currently marketplace bindings reappeared. Will post again if they disappear

I watched the behaviour of the demo:
marketplace bindings disappear and re-appear quite frequently (~2 minutes)

I had a look at the code and if this happens the add-ons list will be empty. This result will be cached for 15 minutes. There are also lots of pages to retrieve due to the number of marketplace entries nowadays. Seems like it has to do 13 requests now to retrieve everything, which will increase the load and the probability one of the requests fails with a connection timeout.

There are no errors in this logging. It’s just normal logging of a bundle that has started without any issues.

Thanks for checking. It’s true that having no mechanism to cope with the growth of the marketplace was really kicking the can down the road - but it’s basically what you do when you scroll Add-on Marketplace - openHAB Community to the end with a browser, just much more quickly (and with the json format i.e. https://community.openhab.org/c/marketplace/69.json).
At the time I hadn’t been able to find a way to retrieve everything in a single request, probably a Discourse by-design limitation.

I just checked the logs on the demo server and haven’t seen a WARN line related to the marketplace in the last hour or so.

Edit: Wait I found this one from yesterday:
2024-01-25 00:43:41.002 [WARN ] [ity.CommunityMarketplaceAddonService] - Unable to retrieve marketplace add-ons: Server returned HTTP response code: 429 for URL: https://community.openhab.org/c/marketplace/69/l/latest?page=13
HTTP 429 is “Too Many Requests” indeed… It happened only twice, and not at the times when there were problems reported on the demo server, so probably not that relevant.

Edit 2: the rate limits in Discourse are as follows:

We can always introduce our own little REST service that periodically updates its database based on Marketplace posts in the Community. That may also help with overcoming some Discourse limitions e.g. so we can support multiple OH versions in a single post. If it has some query parameters it could also be used for filtering out irrelevant entries more easily.

2 Likes

Certainly possible, at the time I was trying to avoid that altogether to avoid maintenance overhead, and having the freshest data was also somewhat an objective - you could have your add-on listed as soon as you made the post here.

It doesn’t even have to be a service, it could be a job that parses and processes the posts and dumps a static JSON somewhere every 10-15 minutes. If that delay is acceptable is would certainly reduce both the overhead on the server, and the loading time in the UI as OH instances wouldn’t have to fetch pages of posts themselves. Worth considering!

2 Likes

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.