Establish what is happening
Capture the pair
Record event identity, resource, state, version, timestamp, channel, retry marker, notification ID, and action for near-identical messages. Include a retry and a real second transition. Keep source order and delivery order separate.
Compare elapsed meaning
Ask whether time, state, or version changed enough to create a new user decision. Compare a repeated payload inside the proposed window with a legitimate update just outside it. A fixed duration cannot replace event identity.
Set the window boundary
State identity key, duration, exceptions, retained history, and action behavior. Preserve a no-dedup control. Stop when another reviewer can tell which repeat is safe to merge and which must remain visible. Record the boundary event that must remain visible.
What to carry forward
The triage output is a deduplication boundary with identity, time, state, channel, and exceptions. Stop when retries and legitimate repeats are distinguishable. If event identity is missing, retain messages and route provenance before choosing a window.
Technical background: Android developer documentation.
Keep the decision with the work.
Use a Work Item in Aglet to record the problem, the evidence you have, and the next decision. Add an owner and priority, then keep updates in the discussion so the next person can follow the reasoning.
Create an account See the product workflow