OTA Update Fails

I have just paired an IKEA TIMMERFLOTTE and it is coming up that there is an update from 1.0.18 to 1.0.21 available.

Nothing I can do seems to get it to apply. The HA logs just have Error during service call to update.install: Error updating: Target node did not process the update file

Matter server logs has

2026-01-08T08:40:14.376728284Z 2026-01-08 08:40:14.375 (MainThread) INFO [matter_server.server.device_controller] <Node:60> Software update found: 1.0.21 (16777237) from UpdateSource.MAIN_NET_DCL, current 1.0.18 (16777234)).
2026-01-08T08:40:44.125378385Z 2026-01-08 08:40:44.124 (MainThread) INFO [matter_server.server.device_controller] <Node:60> The SDK is communicating with the device using fdc2:5c32:7ff0:1:8442:5f21:ce37:2129
2026-01-08T08:40:53.460071522Z 2026-01-08 08:40:53.459 (MainThread) INFO [matter_server.server.device_controller] <Node:60> Update to software version 16777237
2026-01-08T08:40:53.523751650Z 2026-01-08 08:40:53.523 (MainThread) INFO [matter_server.server.device_controller] <Node:60> Software update found: 1.0.21 (16777237) from UpdateSource.MAIN_NET_DCL, current 1.0.18 (16777234)).
2026-01-08T08:40:53.524309420Z 2026-01-08 08:40:53.524 (MainThread) INFO [matter_server.server.device_controller] <Node:60> Downloading update from 'https://ota.matter.ikea.com/files/4476_32773_16777237_717586db-6590-43e5-b557-2c8507f55041.ota'
2026-01-08T08:40:53.656209758Z 2026-01-08 08:40:53.656 (MainThread) INFO [matter_server.server.ota.provider] Update file '4476_32773_16777237_717586db-6590-43e5-b557-2c8507f55041.ota' downloaded to '/app/updates/60'
2026-01-08T08:40:53.656775164Z 2026-01-08 08:40:53.656 (MainThread) INFO [matter_server.server.device_controller] <Node:60> Starting update using OTA Provider.
2026-01-08T08:40:53.657390094Z 2026-01-08 08:40:53.657 (MainThread) INFO [matter_server.server.ota.provider] Starting OTA Provider
2026-01-08T08:40:53.658293120Z 2026-01-08 08:40:53.658 (MainThread) INFO [matter_server.server.ota.provider] Commission and initialize OTA Provider
2026-01-08T08:40:53.766785365Z 2026-01-08 08:40:53.766 (Dummy-2) INFO [chip.ChipDeviceCtrl] Established secure session with Device
2026-01-08T08:40:54.217104126Z 2026-01-08 08:40:54.216 (Dummy-2) INFO [chip.ChipDeviceCtrl] Commissioning complete
2026-01-08T08:40:54.217449592Z 2026-01-08 08:40:54.217 (MainThread) INFO [matter_server.server.ota.provider] OTA Provider App commissioned with node id 990060.
2026-01-08T08:40:56.790565774Z 2026-01-08 08:40:56.789 (MainThread) INFO [matter_server.server.ota.provider] Waiting for target node update state change
2026-01-08T08:40:57.164490477Z 2026-01-08 08:40:57.163 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kIdle: 1> to <UpdateStateEnum.kQuerying: 2>
2026-01-08T08:41:18.253089176Z 2026-01-08 08:41:18.252 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kQuerying: 2> to <UpdateStateEnum.kIdle: 1>
2026-01-08T08:41:18.253605520Z 2026-01-08 08:41:18.253 (MainThread) INFO [matter_server.server.ota.provider] Cleaning up OTA provider
2026-01-08T08:41:18.253649411Z 2026-01-08 08:41:18.253 (MainThread) INFO [matter_server.server.ota.provider] Terminating OTA Provider
2026-01-08T08:41:18.270756951Z 2026-01-08 08:41:18.270 (MainThread) ERROR [matter_server.server.client_handler] [125029192138976] Error while handling: update_node (node 60): Target node did not process the update file
2026-01-08T08:41:28.364130466Z 2026-01-08 08:41:28.363 (MainThread) INFO

Any advice on what I can do to apply the update?

2 Likes

I’m observing a similar problem. I even tried setting the sensor down on the shelf right next to my ZBT-2, but still no love.

It also seems to cause the OTBR to disconnect from the sensor, which is recoverable by restarting the add-on.

Hi

One more. I am also having the same issue.

Initially the same issue, but after a couple of retries it did succeed.

2026-01-13 14:40:06.657 (MainThread) INFO [matter_server.server.device_controller] <Node:6> Update to software version 16777237
2026-01-13 14:40:06.785 (MainThread) INFO [matter_server.server.device_controller] <Node:6> Software update found: 1.0.21 (16777237) from UpdateSource.MAIN_NET_DCL, current 1.0.18 (16777234)).
2026-01-13 14:40:06.787 (MainThread) INFO [matter_server.server.device_controller] <Node:6> Downloading update from 'https://ota.matter.ikea.com/files/4476_32773_16777237_717586db-6590-43e5-b557-2c8507f55041.ota'
2026-01-13 14:40:07.050 (MainThread) INFO [matter_server.server.ota.provider] Update file '4476_32773_16777237_717586db-6590-43e5-b557-2c8507f55041.ota' downloaded to '/config/updates/6'
2026-01-13 14:40:07.052 (MainThread) INFO [matter_server.server.device_controller] <Node:6> Starting update using OTA Provider.
2026-01-13 14:40:07.055 (MainThread) INFO [matter_server.server.ota.provider] Starting OTA Provider
2026-01-13 14:40:07.057 (MainThread) INFO [matter_server.server.ota.provider] Commission and initialize OTA Provider
2026-01-13 14:40:07.695 (Dummy-2) INFO [chip.ChipDeviceCtrl] Established secure session with Device
2026-01-13 14:40:08.925 (Dummy-2) INFO [chip.ChipDeviceCtrl] Commissioning complete
2026-01-13 14:40:08.927 (MainThread) INFO [matter_server.server.ota.provider] OTA Provider App commissioned with node id 990006.
2026-01-13 14:40:14.105 (MainThread) INFO [matter_server.server.ota.provider] Waiting for target node update state change
2026-01-13 14:40:14.295 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kIdle: 1> to <UpdateStateEnum.kQuerying: 2>
2026-01-13 14:40:16.187 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kQuerying: 2> to <UpdateStateEnum.kDownloading: 4>
2026-01-13 14:47:30.417 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kDownloading: 4> to <UpdateStateEnum.kApplying: 5>
2026-01-13 14:48:01.517 (MainThread) INFO [matter_server.server.device_controller] Interviewing node: 6
2026-01-13 14:48:01.523 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kApplying: 5> to <UpdateStateEnum.kUnknown: 0>
2026-01-13 14:48:02.502 (Dummy-2) CHIP_ERROR [chip.native.EM] <<5 [E:59829r with Node: <0000000000000006, 1> S:51100 M:149281570] (S) Msg Retransmission to 1:0000000000000006 failure (max retries:4)
2026-01-13 14:48:04.589 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kUnknown: 0> to <UpdateStateEnum.kApplying: 5>
2026-01-13 14:48:44.303 (MainThread) INFO [matter_server.server.ota.provider] Update state changed from <UpdateStateEnum.kApplying: 5> to <UpdateStateEnum.kIdle: 1>
2026-01-13 14:48:44.303 (MainThread) INFO [matter_server.server.ota.provider] Node 6 update state idle, assuming done.
2026-01-13 14:48:44.304 (MainThread) INFO [matter_server.server.ota.provider] OTA update finished successfully
2026-01-13 14:48:44.307 (MainThread) INFO [matter_server.server.ota.provider] Cleaning up OTA provider
2026-01-13 14:48:44.308 (MainThread) INFO [matter_server.server.ota.provider] Terminating OTA Provider
2026-01-13 14:48:44.470 (MainThread) INFO [matter_server.server.device_controller] <Node:6> No new update found.type or paste code here

To add to this, in the past, i had the same issues with the Tradfri devices. Sometimes they work and sometimes they don’t, i’ve never found a reason for this behaviour.

For anyone coming across this I have tracked it down and have the updates applying but I need to go back and refresh my ipv6 knowledge and check what is going on as it is a network problem.

On the matter server itself there was /app/updates/59 that contained the update details of node 59. With the help of Discord and AI (and some messing around) it appears that the issue is that the device is not able to callback to the Matter Server to actually download the file.

So I noticed it was using my trusted VLAN
CHIP:DL: Found the primary Ethernet interface:enp1s0

adding MATTER_SERVER_INTERFACE: "enp1s0.10" as environment variable in Matter Server and updating OTBR to have BACKBONE_IF: "enp1s0.10" and the updates are now applying.

I think this is because VLAN 10 (my IoT VLAN) has an actual IPv6 address allocated so it was able to us that instead of the Local Link Address (which is where my ipv6 knowledge is very rusty) . Using the LLA I think it is not routable from the Thread mesh to the Matter Server as the LLA is only within the Thread Mesh but I still can’t quite get me head around how the Thread Mesh and IPv6 work and overlap.

Off for a lie down before I start delving back into the network details and re-learning about ipv6

Just making some notes on your experience; May I ask what type of installation are you using for Matter Server…is it Docker container?

yes I run on docker but I am thinking this is not related to that. The Thread mesh in on different layer 2 segment to your main network. For an OTA update it appears the device has to request it from the controller so in order for the device to be able to contact the controller in a different layer 2 segment it needs a proper ipv6 address not just a local link one.

Tried the same thing by setting --primary-interface wlan0 and then rebuilding the OTBR addon docker image to hardcode backbone_if and unfortunately same outcome as for you guys above.

So annoying as I had one of those sensors earlier paired to Alexa/Echo thread network, and the matter shared to HA, and that one updated without any issues.