Presence Changed Event

I’m watching a presence alerter application running on my Digium phone. It reports the presence as expected, however, I’m getting a strange (unexpected) behavior.

The event fires randomly every few minutes, whether the presence state has changed or not. It fires twice every time it fires, one event shows the “subtype”, one event does not.

For instance, I change my presence to Do Not Disturb, with a message of “On Break”.
The event fires correctly, showing the correct type of “dnd” with the correct subtype of “On Break”, the event only fires once when the presence is actually changed on the phone.

If I wait 2-3 minutes and watch the debug output, the event fires again, twice in succession.
The first event again shows the correct type of “dnd”, and the correct subtype of “On Break”. However, the second “firing” shows the correct type of “dnd”, but the subtype is an empty string.

Why does this event fire twice and repeatedly? Does this have to do with the app idle reset? Also, why is the presence information being incorrectly reported by the API?

{“eventName”:“digium.phone.contact_presence”,“eventData”:{“url”:“sip:334@10.0.30.5:5060”,“onlineStatus”:“online”,“note”:“Ready”,
“subscriptionState”:“ACTIVE”,“type”:“dnd”,“subtype”:“BREAK”,“text”:""},“messageId”:“ae859694”}
{“eventName”:“digium.phone.contact_presence”,“eventData”:{“url”:“sip:108@10.0.30.5:5060”,“onlineStatus”:“online”,“note”:“Ready”,
“subscriptionState”:“ACTIVE”,“type”:“dnd”,“subtype”:"",“text”:""},“messageId”:“ae859702”}