I spent some time wondering why the first message received in my mailbox 0 of CAN0 on a SAM3X was giving me a invalid message ID but the data was correct and all subsequent messages with ids were always correct.
Turns out that mailbox 0 for some reason on the SAM3X is broken and will always show this behavior after the can controller initialized. Whether it’s a big deal or not depends on application. I simply moved to using mailbox 1 and it does not exhibit the same behavior with the same configuration (only changed the mailbox index which was #defined).