diff --git a/src/core/coap/coap.cpp b/src/core/coap/coap.cpp index 6c5328aec..346d164a6 100644 --- a/src/core/coap/coap.cpp +++ b/src/core/coap/coap.cpp @@ -640,6 +640,8 @@ Error CoapBase::PrepareNextBlockRequest(Message::BlockType aType, blockOption = (aType == Message::kBlockType1) ? kOptionBlock1 : kOptionBlock2; aRequest.Init(kTypeConfirmable, static_cast(aRequestOld.GetCode())); + // Per RFC 7959, all requests in a block-wise transfer MUST use the same token. + IgnoreError(aRequest.SetTokenFromMessage(aRequestOld)); SuccessOrExit(error = iterator.Init(aRequestOld)); // Copy options from last response to next message