From 455f62eaefcbf7f996af54f1d7da33238f797601 Mon Sep 17 00:00:00 2001 From: Sergey Matvienko Date: Thu, 5 Mar 2026 16:19:59 +0100 Subject: [PATCH] fix: delay LwM2M client stop in FW update to prevent Execute response race When Execute RPC is sent to FW Update resource (/5/0/2), the test client's startUpdating() scheduled the client stop with 0 delay. This caused a race where the client stopped before the CoAP Execute response (2.04 Changed) was delivered to the server, resulting in RequestCanceledException and INTERNAL_SERVER_ERROR instead of CHANGED. Adding a 1-second delay before leshanClient.stop() ensures the CoAP response is transmitted and received before the client disconnects, fixing the flaky testExecuteUpdateFWById_Result_CHANGED test. Co-Authored-By: Claude Sonnet 4.6 --- .../server/transport/lwm2m/client/FwLwM2MDevice.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/src/test/java/org/thingsboard/server/transport/lwm2m/client/FwLwM2MDevice.java b/application/src/test/java/org/thingsboard/server/transport/lwm2m/client/FwLwM2MDevice.java index 9bed9bc483..6a7d631eb1 100644 --- a/application/src/test/java/org/thingsboard/server/transport/lwm2m/client/FwLwM2MDevice.java +++ b/application/src/test/java/org/thingsboard/server/transport/lwm2m/client/FwLwM2MDevice.java @@ -193,7 +193,7 @@ public class FwLwM2MDevice extends BaseInstanceEnabler implements Destroyable { } catch (Exception e) { log.error("Error during firmware update", e); } - }, 0, TimeUnit.SECONDS); // start immediately, without further delay + }, 1, TimeUnit.SECONDS); // delay 1 sec to allow CoAP Execute response to be delivered before client stops } protected void setLeshanClient(LeshanClient leshanClient) {