Image check failed during sysupgrade to snapshot on BT HH5a

I flashed my BT HH5a with a latest snapshot image from the website. I had to apply the -F option to force the upgrade, otherwise it refused to flash blaming the configuration (1.0 -> 1.1). I then factory restored the image, hence rolling the configuration to the factory default for the latest snapshot.

I then tried to sysupgrade from the latest snapshot to my own self-built image of the same snapshot. I received an Image checked failed message and had to force again.

I then tried to sysupgrade from my self-built image to the same self-built image. I received the same error message again.

root@OpenWrt:/# cat /etc/openwrt_release
DISTRIB_DESCRIPTION='OpenWrt SNAPSHOT r18302-ea49690ff4'
DISTRIB_TAINTS='no-all no-ipv6 busybox'
root@OpenWrt:/# uci export system
package system

config system
        option hostname 'OpenWrt'
        option timezone 'UTC'
        option ttylogin '0'
        option log_size '64'
        option urandom_seed '0'
        option compat_version '1.1'

root@OpenWrt:/# sysupgrade -v /tmp/openwrt-lantiq-xrx200-bt_homehub-v5a-squashfs
Image check failed.
root@OpenWrt:/# cat /tmp/sysupgrade.meta
{  "metadata_version": "1.1", "compat_version": "1.1", "compat_message": "Config cannot be migrated from swconfig to DSA", "new_supported_devices": ["bt,homehub-v5a","BTHOMEHUBV5A"], "supported_devices": ["bt,homehub-v5a BTHOMEHUBV5A - Image version mismatch: image 1.1, device 1.0. Please wipe config during upgrade (force required) or reinstall. Reason: Config cannot be migrated from swconfig to DSA"],  "version": { "dist": "OpenWrt", "version": "SNAPSHOT", "revision": "r18302-ea49690ff4", "target": "lantiq/xrx200", "board": "BTHOMEHUBV5A" } }

What do I need to fix to allow sysupgrade to flash the latest snapshot images without the -F option?

Wipe /etc/config/network. The lantiq target might be on DSA by now.

That being said, better back up you configs, start from scratch like the warning message suggests, inspect the new ones and replace them with the old ones where there's major overlap; but that will not be the case for /etc/config/network.

1 Like

It is because of DSA migration, I get it every time I've upgraded to, or between DSA builds on two of my BT hubs, but not always with the third one:

No, wiping config files does not solve the problem.

root@OpenWrt:~# mv /etc/config/network /etc/config/network.bak
root@OpenWrt:~# sysupgrade -n /tmp/openwrt-lantiq-xrx200-bt_homehub-v5a-squashfs-sysupgrade.bin
Image check failed.

As I said, the configs are restored to factory defaults for the latest openwrt snapsot, so they meet the DSA requirements for the new syntax (list ports etc)

Thank you. So is the upgrade basically in a semi-developed stage at the moment?

I guess it does not concern most of the regular users who upgrade between stable versions only. But for me having to upgrade using -F flag was a test of faith in my self-built firmware. Good thing I have some spare HH5a's lying around and I can access them via serial console and relatively easily recover from a brick if necessary. But I also have some devices hidden far away in the house and having to unbrick them would be a real PITA.

-n will only wipe configuration but not force a sysupgrade. -F is still needed to force it, since sysupgrade chokes (as intended) on the compatibility warning.

-F is still needed to force it, since sysupgrade chokes (as intended) on the compatibility warning.

But why do I have a compatibility warning here? My config is a factory default config from the recent snapshot, and I am flashing the same snapshot over it. My config is 1.1 compatible, and so is the image I am flashing over it - what is the warning telling me here?

My apologies, your compat_version says 1.1 in the opening post indeed, while it says 1.0 ('device') in your error message.

# uci show system|grep compat is showing 1.1 as well?

There were earlier reports about hiccups on the forum here, quite a while ago. But I don't recall if it was stuff like this.

I'm currently still using a DSA build from shortly before it was added to the snapshot. I must have been using builds with the DSA patch applied for at least a year now, the DSA driver seems very stable to me, I think it is actually more stable than the original switch one.

I would assume that the warning is only intended to occur when upgrading from a non-DSA build to DSA to prevent the old incompatible network settings being kept, so possibly that is a bug somewhere.

root@OpenWrt:~# uci show system|grep compat

The config is factory default from the most recent openwrt snapshot. I am curious as to why it is considered incompatible with the most recent snapshot?

This is one of those older similar topics, maybe it has a hint:

All three of my BT routers are currently flashed with the same build installed on them, although as I mentioned above it is a few months old, so if the following is a bug, it may have been fixed.

Two don't have "system.@ system[0].compat_version" present, the third (actually the Plusnet hub one) has "system.@ system[0].compat_version='1.1'"

The two that don't were upgraded via the browser UI from a previous DSA patched build, the one that does was upgraded over SSH from booting into recovery as it failed to respond after being flashed with a recent snapshot, and prior to that had a non DSA build.