Establish what is happening
Capture time evidence
Record endpoint, environment, signed timestamp, receiver time source, tolerance label, content type, body length, and verification stage. Do not log secrets or full payloads. Note whether signature matched before freshness failed.
Compare time boundaries
Run recent, boundary-age, stale, seconds-versus-milliseconds, invalid-time, wrong-secret, and altered-body fixtures. Compare clock difference and verifier stage. A timestamp failure should not be recorded as a secret mismatch. Keep timestamp units explicit in the fixture.
Bound affected receivers
Group failures by endpoint, host, environment, clock source, receiver revision, and delivery age. Separate local clock drift, sender delay, parser unit, and signature input. Quarantine stale or ambiguous deliveries. Preserve endpoint time source for review.
What to carry forward
Triage ends with signed and receiver times, verifier stage, affected receivers, and evidence gap. Keep stale events unprocessed. Route time source, tolerance, raw-body, and secret questions separately. Keep freshness and authenticity as separate findings for review.
Technical background: Coinbase 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