ioBroker / ioBroker.admin

user interface for configuration and administration
https://iobroker.net
MIT License
271 stars 78 forks source link

[bug]: Cannot get list of adapter - Error in GUI #2773

Open alkaraschu opened 1 day ago

alkaraschu commented 1 day ago

No existing issues.

Describe the bug

Cannot get list of adapters in the GUI

To Reproduce

open iobroker go to adapters

Expected behavior

Open a list of all (installed) adapter

Screenshots & Logfiles

image image

Adapter version

7.1.5

js-controller version

6.0.11

Node version

20.18.0

Operating system

Mac OS

Additional context

No response

averlon commented 20 hours ago

I have the same issue!

admin-adapter: 7.2.6 (was installed due to some other issue)!

mcm1957 commented 20 hours ago

@averlon @alkaraschu Thanks for reporting.

Please retry after reloading repository data. There was som invlid data distributed by stable repository.

Go to adapter tab and press "Adapter auf Updates prüfen" (Icon with circular arrow). image

Afterwards refreh screen. Shoudl work for now..

Please keep Issue open even if it works - there's a code part that must be improved at admin!

mcm1957 commented 17 hours ago

Problem analyzes (german as copied from Telegram)

In sources-dist.json, also der offiziellen vom Fileserver ausgelieferten Datei, fand sich folgende Zeile beim zigbee2mqtt Adapter:

        ],
        "licenseInformation": "MIT",
        "platform": "Javascript/Node.js",

licenseInformation ist hier ein STRING und nicht wie vorgesehen ein OBJECT. Der fehlerhafte Eintrag steht auch so im io-package.json auf npm (release 2.13.10).

Damit kommt der Admin nicht zurecht:

react-dom.production.min.js:282 Uncaught TypeError: s.includes is not a function
    at O (Utils.ts:22:18)
    at lt.renderLicenseInfo (AdapterGeneric.tsx:401:15)
    at lt.render (AdapterRow.tsx:94:26)
    at No (react-dom.production.min.js:203:189)
    at zo (react-dom.production.min.js:202:149)
    at xi (react-dom.production.min.js:291:172)
    at bs (react-dom.production.min.js:279:389)
    at vs (react-dom.production.min.js:279:320)
    at gs (react-dom.production.min.js:279:180)
    at ls (react-dom.production.min.js:267:209)
    at S (scheduler.production.min.js:13:203)
    at MessagePort.T (scheduler.production.min.js:14:128)

Codestelle:

if (!url  !url.includes('/LICENSE')  !url.includes('raw.githubusercontent.com')) {
        url = adapterRepo.extIcon;
        if (!url) {
            url = adapterRepo.readme;

Im Debugger (Chrome F12) zeigt sich dass in url statt des Strings aus 'link' nun func() steht.