The OpenWrt Firmware Selector

I'm seeing the same old version return, but in a slightly different way: while trying to upgrade to 24793 from 24774, I instantly get my current 24774 build returned:

It's down again today (Thursday)

2 Likes

The Firmware Selector at OpenWrt Firmware Selector stopped working. Nothing happens when entering the device model.

2 Likes

Something funny is going happening on the server. @aparcar can you take a look?

1 Like

There is indeed a JS error:

Uncaught (in promise) TypeError: obj.profiles is not iterable
    init https://firmware-selector.openwrt.org/index.js:769
    promise callback*init/< https://firmware-selector.openwrt.org/index.js:749
    setupSelectList https://firmware-selector.openwrt.org/index.js:211
index.js:769:31

Which is an ugly error to start with, the JS code can be update to check if the obj variable is not null or empty if (obj) {} should do it. And } else { } throw a better error. Also add the following catch to the fetch promise:

.catch((error) => {
  console.log(error)
});

EDIT: I will create a PR at: https://gitlab.com/openwrt/web/firmware-selector-openwrt-org/

1 Like

Created PR: https://gitlab.com/openwrt/web/firmware-selector-openwrt-org/-/merge_requests/193/diffs

Ps. this will not solve the actual issue we are facing now, but for the future it will no longer crash like this.

Hi. Thank you for debugging. The problem seems to be that the fetched overview.json has the pre 4.0.0 format:

{
    "image_url": "https://downloads.openwrt.org/releases/23.05.2/targets/{target}",
    "profiles": {
        "8dev_carambola2": {
[...]

While the format after 4.0.0 should be:

{
  "profiles": [
    {
      "model_id": "dlink_dir-685",
      "target": "gemini/generic",

[...]

(key "profiles" has an array as value!)

I have the suspicion that some backup was used that overwrote the generator collect.py script on the server with the old version that creates the old overview.json format.

There is nothing I can do without server access. @aparcar to the rescue. :slight_smile:

2 Likes

Let me add this to my PR :stuck_out_tongue: Ow I think obj.profiles.length === 0 should do this already what I wrote. Since I indeed already expected an array.

Can there be an announcement added that its not working?

It worked for a short while yesterday, now down again.

There is https://firmware-selector.staging.openwrt.org as an alternative.
Or just use https://downloads.openwrt.org/

1 Like

The problem has been solved :slight_smile:

2 Likes

I can find my router now but there is still some odd behavior. Today, the firmware selector page shows my available SNAPSHOT as:

About this build

Model
GL.iNet GL-MT6000
Platform
mediatek/filogic
Version
SNAPSHOT (r24806-735efbfb7c)
Date
2024-01-14 02:00:24

But when I paste my custom list of packages the return build I get is from several days ago:

About this build

Model
GL.iNet GL-MT6000
Platform
mediatek/filogic
Version
SNAPSHOT (r24793-e691e2b302)
Date
2024-01-09T20:20:37.000000Z

2 posts were split to a new topic: Firmware for WS-WN536AX3 RevA

When this service is down, does it affect Attended Sysupgrade service?
I have only seen the Attended Sysupgrade service work once.
All other times it just gives "the wheel of patience" forever, "Searching", no completion, no results.

"It depends."

All of the Firmware Selector (FS), auc and LuCI Attended Sysupgrade use the ASU build server to create their custom images. So, if the FS is down, it could be that it has an issue local to itself (the recent case where user couldn't get the selector pulldown to work) or it could be that the ASU server is having issues, in which case all of the above tools may exhibit problems. But, depending on the specific ASU server issue, it could be that one of the tools works and others do not, as the data they send to the server is subtly different.

(If you are deeply curious, see https://sysupgrade.openwrt.org/ui/ and look at the BuildRequest schema, specifically defaults, diff_packages, package_versions and version_code, to see some of the things that the various tools use differently.)

1 Like

I'm constantly getting this error regardless of target/branch:
Handling defaults not enabled on server

1 Like

"Allow custom UCI defaults" was not enabled for a while now.

https://sysupgrade.openwrt.org/

1 Like

I'm getting this from attended sysupgrade:

Collected errors:
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_core https://downloads.openwrt.org/releases/23.05.2/targets/bcm27xx/bcm2709/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_base https://downloads.openwrt.org/releases/23.05.2/packages/arm_cortex-a7_neon-vfpv4/base). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_luci https://downloads.openwrt.org/releases/23.05.2/packages/arm_cortex-a7_neon-vfpv4/luci). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_packages https://downloads.openwrt.org/releases/23.05.2/packages/arm_cortex-a7_neon-vfpv4/packages). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_routing https://downloads.openwrt.org/releases/23.05.2/packages/arm_cortex-a7_neon-vfpv4/routing). Skipping.
 * opkg_conf_parse_file: Duplicate src declaration (openwrt_telephony https://downloads.openwrt.org/releases/23.05.2/packages/arm_cortex-a7_neon-vfpv4/telephony). Skipping.

I've tried to figure out why this happened, as I think the default was always False (https://github.com/openwrt/asu/blob/main/asu/asu.py#L35), so it must be that the environment (or a config file https://github.com/openwrt/asu/blob/main/misc/config.py#L37) was modified on the production server.

@aparcar Can the ALLOW_DEFAULTS be set to true again, or is there some underlying issue with enabling it?

1 Like