This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MAC Transaction Expired after device joins.

Hi,

I have a ZED connected to my coordinator.

I tested removing the batteries, send some commands and then reconnecting it.

When I receive the END Device Annce IND Packet all the previous commands return MAC Transaction Expired. Any idea of why this behaviour? All the command get lost.

What is the meaning behind the MAC Transaction Expired error? Is there any other reason for this error except for the polling not retrieving the packet in time?

The Timeout is set to the maximum value of 127 seconds.

EDIT: The time between the command being sent and the batteries being put back is like 1 seconds. 

  • Hi Luca,

    This is intentional behavior.  The rejoin response messages are sent as indirect messages and previously queued messages cannot be allowed to interfere with this process.  Thus the data buffers of these prior messages are deleted and the user is notified of a ZMacTransactionExpired (0xF0) to re-attempt these packets if desired.

    Regards,
    Ryan

  • If your coordinator gets MAC Transaction Expired, your can make your coordinator remember the sending message, and try to make the target sleepy-end-device to wake up and poll (send MAC-DATA-Request command) from coordinator, and retry the remembered message to end-device