Hi Haris,
From the LWM2M Service logs, the LWM2M Service sends the firmware package to the 5/0/0 resource blockwise.
The device responds with 2.31 Continue but without acknowledging the block.
Therefore, the LWM2M Service tries to send the first block again a couple of times and in the end it fails due to the unexpected response.
This is the last sent block before failure and the acknowledgement received from your device:
2026-06-06T12:14:36.575Z TRACE 1 — [erver(main)#120] c.lwm2m.leshan.server.CoapMessageTracer : LWM2M-SERVER /*** <== req CON-PUT MID=40896, Token=A47EDD6E10FBF102, OptionSet={“Uri-Path”:[“5”,“0”,“0”], “Content-Format”:“application/octet-stream”, “Block1”:“(szx=5/512, m=true, num=0)”, “Size1”:187660}, EB 17 A6 03 08 00 00 00 00 00 00 03 00 00 00 00 F4 0A 0A F4 1C 00 00 00 10 00 00 00 01 00 00 00..512 bytes
2026-06-06T12:14:41.213Z TRACE 1 --- [erver(main)#110] o.e.californium.core.network.UdpMatcher : received response ACK-2.31 MID=40896, Token=A47EDD6E10FBF102, OptionSet={}, <empty data> from DTLS(***:14672,ID:54494D453A)
When doing the similar blockwise firmware push with our Leshan simulation device:
2026-06-09T12:44:20.102Z TRACE 1 — [erver(main)#153] c.lwm2m.leshan.server.CoapMessageTracer : LWM2M-SERVER /*** <== req CON-PUT MID=34224, Token=FCCF7B1F4166CAF7, OptionSet={“Uri-Path”:[“5”,“0”,“0”], “Content-Format”:“application/octet-stream”, “Block1”:“(szx=5/512, m=true, num=833)”}, BB FA EA D0 A6 D7 A0 FF C2 C2 42 DF F1 EA 8E 1D 93 FA FA 7A F3 A9 A8 A8 30 ED 4A 4B 4B 3B 2C 58..512 bytes
2026-06-09T12:44:20.157Z TRACE 1 --- [erver(main)#347] o.e.californium.core.network.UdpMatcher : received response ACK-2.31 MID=34224, Token=FCCF7B1F4166CAF7, OptionSet={"Block1":"(szx=5/512, m=true, num=833)"}, <empty data> from UDP(***:16766)
The received response from our simulation device contains the “OptionSet” property with information about the block.
Then block acknowledgement gets recognized and continues with the next block.