RT3200 image check failed

I have been building firmware for my RT3200 for a long time now. I built a snapshot from the latest git just now and went to flash it but was presented with this warning:

I used the same diffconfig that I always do:

diffconfig
CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_mt7622=y
CONFIG_TARGET_mediatek_mt7622_DEVICE_linksys_e8450-ubi=y
CONFIG_PACKAGE_attendedsysupgrade-common=y
CONFIG_PACKAGE_block-mount=y
CONFIG_PACKAGE_cgi-io=y
CONFIG_PACKAGE_coreutils=y
CONFIG_PACKAGE_coreutils-numfmt=y
CONFIG_PACKAGE_e2fsprogs=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_iperf3=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-lib-crc16=y
CONFIG_PACKAGE_kmod-scsi-core=y
CONFIG_PACKAGE_kmod-usb-storage=y
CONFIG_PACKAGE_libblkid=y
CONFIG_PACKAGE_libcap=y
CONFIG_PACKAGE_libcomerr=y
CONFIG_PACKAGE_libext2fs=y
CONFIG_PACKAGE_libiperf3=y
CONFIG_PACKAGE_libiwinfo-lua=y
CONFIG_PACKAGE_liblua=y
CONFIG_PACKAGE_liblucihttp=y
CONFIG_PACKAGE_liblucihttp-lua=y
CONFIG_PACKAGE_liblucihttp-ucode=y
CONFIG_PACKAGE_libmount=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libpcre=y
CONFIG_PACKAGE_libpopt=y
CONFIG_PACKAGE_librt=y
CONFIG_PACKAGE_libsmartcols=y
CONFIG_PACKAGE_libss=y
CONFIG_PACKAGE_libubus-lua=y
CONFIG_PACKAGE_libuuid=y
CONFIG_PACKAGE_libwolfssl=m
CONFIG_PACKAGE_lua=y
CONFIG_PACKAGE_luci=y
CONFIG_PACKAGE_luci-app-attendedsysupgrade=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-opkg=y
CONFIG_PACKAGE_luci-base=y
CONFIG_PACKAGE_luci-lib-base=y
CONFIG_PACKAGE_luci-lib-ip=y
CONFIG_PACKAGE_luci-lib-jsonc=y
CONFIG_PACKAGE_luci-lib-nixio=y
CONFIG_PACKAGE_luci-light=y
CONFIG_PACKAGE_luci-mod-admin-full=y
CONFIG_PACKAGE_luci-mod-network=y
CONFIG_PACKAGE_luci-mod-status=y
CONFIG_PACKAGE_luci-mod-system=y
CONFIG_PACKAGE_luci-proto-ipv6=y
CONFIG_PACKAGE_luci-proto-ppp=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
CONFIG_PACKAGE_mount-utils=y
CONFIG_PACKAGE_ncdu=y
CONFIG_PACKAGE_rpcd=y
CONFIG_PACKAGE_rpcd-mod-file=y
CONFIG_PACKAGE_rpcd-mod-iwinfo=y
CONFIG_PACKAGE_rpcd-mod-luci=y
CONFIG_PACKAGE_rpcd-mod-rpcsys=y
CONFIG_PACKAGE_rpcd-mod-rrdns=y
CONFIG_PACKAGE_rpcd-mod-ucode=y
CONFIG_PACKAGE_rsync=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_tree=y
CONFIG_PACKAGE_ucode-mod-html=y
CONFIG_PACKAGE_ucode-mod-math=y
CONFIG_PACKAGE_uhttpd=y
CONFIG_PACKAGE_uhttpd-mod-ubus=y
CONFIG_PACKAGE_vim-fuller=y
CONFIG_PACKAGE_wpad-wolfssl=m
CONFIG_PACKAGE_zlib=y
CONFIG_PACKAGE_zsh=y
CONFIG_WOLFSSL_HAS_NO_HW=y
CONFIG_WPA_WOLFSSL=y

Why am I seeing this warning?

The file is faulty.
It does not even say that it is for another router. Sounds like it is not a sysupgrade file at all.

What is the name of the file?
can you show the first lines of the diffconfig output from your build system?

I posted the entire diffconfig above but using the hidden text option. Here are the first few:

CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_mt7622=y
CONFIG_TARGET_mediatek_mt7622_DEVICE_linksys_e8450-ubi=y

File name under /scratch/union/bin/targets/mediatek/mt7622/ is:

openwrt-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb

I missed that. Too fancy for me :wink:

But you are right. It looks normal.

I wonder if the reason is that you are might be running the faulty versioned build.
"r0+21885-xxx". An early build from buildbot/auc ?

But your screenshot show the correct UBI... hmmm...

Might be best to revert to the initranfs recovery console and use that for flashing.

I can't remember the source of the current firmware... I thought I built it. What is your suggestion? Use an alternative method to use that same source file but not the sysupgrade part of luci?

% ls /scratch/union/bin/targets/mediatek/mt7622
packages
config.buildinfo
feeds.buildinfo
openwrt-mediatek-mt7622-linksys_e8450-ubi-bl31-uboot.fip
openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb
openwrt-mediatek-mt7622-linksys_e8450-ubi-preloader.bin
openwrt-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb
openwrt-mediatek-mt7622-linksys_e8450-ubi.manifest
profiles.json
sha256sums
version.buildinfo

My openwrt-mediatek-mt7622-linksys_e8450-ubi-initramfs-recovery.itb gives this when I try using it from luci:

EDIT: I even get those warnings when I try using the official 22.03.5 image:

@daniel

Of course it gives, because that is wrong image.
That is the recovery image, not sysupgrade.

I proposed that you use the recovery console for flashing. You trigger recovery during boot and end up in the initramfs recovery console that is unique to the RT3200/E8450. You can then use that to completely overwrite the current run-time OpenWrt image.

EDIT:
the versinioning of your current image is so strange, that I guess that that image might be a reason for your problems.
kuva

There is no commit 629fef5ff6 in OpenWrt

How does one trigger recovery during boot? I am only aware of holding reset down for 10 sec which resets the configs to factory values. Thanks!

EDIT: Ah, see here, wait for fast blink then hit reset several times.

I used the image I built and flashed with force mode and now everything seems normal. Thanks for the advice.

 sysupgrade -F -i -v /tmp/openwrt-mediatek-mt7622-linksys_e8450-ubi-squashfs-sysupgrade.itb 
Image check failed but --force given - will update anyway!
Keep config files over reflash (Y/n): Y
Edit config file list (y/N): N
Thu Jan  1 00:04:13 UTC 1970 upgrade: Saving config files...
etc/config/dhcp
etc/config/dropbear
etc/config/firewall
etc/config/luci
etc/config/rpcd
etc/config/ucitrack
etc/config/uhttpd
etc/dropbear/dropbear_ed25519_host_key
etc/dropbear/dropbear_rsa_host_key
etc/group
etc/hosts
etc/inittab
etc/luci-uploads/.placeholder
etc/nftables.d/10-custom-filter-chains.nft
etc/nftables.d/README
etc/opkg/keys/36499f12d93c34f3
etc/opkg/keys/8a11255d14aef6c8
etc/opkg/keys/b5043e70f9a75cde
etc/passwd
etc/profile
etc/rc.local
etc/shadow
etc/shells
etc/shinit
etc/sysctl.conf
Thu Jan  1 00:04:13 UTC 1970 upgrade: Commencing upgrade. Closing all shell sessions.

There are two images in the RT3200 UBI right? Could this be corresponding to the original dangowrt image? How can I tell which of the two images I am booted into?

No. It used normal versining, I think.

Actually no.
That is likely the "normal" OpenWrt failsafe mode.

I meant the RT3200-specific recovery console.

Thanks for the advice... it seems that just running the force option did the trick.

There are two boot partitions with two images in the RT3200 UBI right? How can I tell which of the two images I am booted into?

ubus call system board

or

cat /etc/os-release

The version in either of those should match what you cloned/built.