MS-ASCMD § 2.2.3.88.2 HeartbeatInterval Sync correct usage unclear

Noah Bergbauer 0 Reputation points
2025-11-19T23:35:29.0366667+00:00

According to the specification, if the specified HeartbeatInterval is within the range allowed by the server and there is no a Wait element, a Sync containing no other errors should return successfully.

I am testing this against outlook.com with a very simple request:

<Sync>
    <Collections>
        <Collection>
            <SyncKey>2xxxxxx37</SyncKey>
            <CollectionId><id></CollectionId>
        </Collection>
    </Collections>
    <HeartbeatInterval>120</HeartbeatInterval>
</Sync>

The server appears to understand the HeartbeatInterval: the request blocks and a response is only received when I either make a change in the given folder or the given timeout of 120 seconds expires.

However, the server then always replies this:

<Sync>
    <Status>102</Status>
</Sync>

This is puzzling because error code 102 is specified in MS-ASCMD § 2.2.2 as "InvalidWBXML" which doesn't make any sense because the server evidently must have decoded every element in the request correctly. Without correctly decoding the HeartbeatInterval it could not have known to block the request for the requested amount of time.

Is there some other requirement that a Sync request with a HeartbeatInterval must fulfil in order to be considered valid? Is there any scenario where error 102 can have a meaning other than that the request body is not valid WBXML (which it definitely is in this case)?

Exchange | Exchange Server | Open Specifications
Exchange | Exchange Server | Open Specifications
Technical documents for protocols, computer languages, standards support, and data portability. The goal with Open Specifications is to help developers open new opportunities to interoperate with Windows, SQL, Office, and SharePoint.
{count} votes

2 answers

Sort by: Most helpful
  1. Q&A Assist
    2025-11-19T23:36:44.32+00:00
    AI generated content. This question contains an answer created with AI from Q&A Assist. Learn more

    The error code 102, which corresponds to "InvalidWBXML," indicates that the server has encountered an issue with the WBXML format of the request. Even though the server seems to understand the HeartbeatInterval and blocks the request as expected, there may be other elements in the request that are not formatted correctly or are not compliant with the expected WBXML structure.

    Here are a few considerations that might help clarify the situation:

    1. Request Structure: Ensure that the entire request is properly formatted according to the WBXML specifications. Any malformed tags or incorrect nesting can lead to the server interpreting the request as invalid.
    2. Required Elements: Check if there are any mandatory elements that must be included in the Sync request when using HeartbeatInterval. If any required elements are missing, it could trigger an invalid response.
    3. Server-Side Constraints: Sometimes, server implementations may have additional constraints or requirements that are not explicitly documented in the specification. It may be useful to consult with the server's documentation or support to see if there are known issues or additional requirements for the Sync request.
    4. Error Handling: The server may return an error code for reasons other than the request body being invalid. It is worth investigating if there are specific conditions under which the server might return an error code despite the request being well-formed.

    If you continue to encounter issues, consider reaching out to the support channels for the server or checking community forums for similar experiences.

    0 comments No comments

  2. Vergil-V 7,555 Reputation points Microsoft External Staff Moderator
    2025-11-20T09:10:53.9233333+00:00

    Please note that our forum is a public platform, and we will modify your question to hide your personal information in the description. Kindly ensure that you hide any personal or organizational information the next time you post an error or other details to protect personal data.
    Hi @Noah Bergbauer 

    Thank you for reaching out to Microsoft Learn Q&A!   

    Based on my research, error 102 does not indicate anything beyond suggesting that the WBXML is not valid. 

    Additionally, I noticed that your XML snippet does not include HeartbeatInterval. May I ask where you placed the HeartbeatInterval? It should appear before the Collections element and be at the same node level.
    If possible, please share your XML that includes HeartbeatInterval so we can better understand your situation.

    Regarding the 120-second timeout, may I clarify that this corresponds to the HeartbeatInterval? To check whether the server honors the HeartbeatInterval, you could try adjusting its value and observe if the timeout changes from 120 seconds. 

    Furthermore, please double-check that your MS-ASProtocolVersion is supported according to the reference table. 

    undefined Reference: [MS-ASCMD]: HeartbeatInterval (Sync) | Microsoft Learn 

    I look forward to your updates. 


    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.