Events not arriving
Diagnose why events sent to the Ingestion API aren't showing up.
Symptom
Section titled “Symptom”Events you send to POST /api/v1/t are not arriving — analytics show no events, or events you expect are missing for a given visitor, window, or campaign.
Likely causes
Section titled “Likely causes”-
POST /api/v1/t— invalid or missing API key (401) — the request is rejected before it is ever queued.bash curl -s -o /dev/null -w "%{http_code}\n" -X POST https://api.retidal.com/api/v1/t \-H "X-API-Key: $RETIDAL_API_KEY" -H "Content-Type: application/json" \-d '{"eventName": "page_view", "visitorId": "vid_abc123"}'# 401 means the key is missing, revoked, or malformed — reissue it, see AuthenticationPOST /api/v1/taccepts any valid project API key — it has no scope gate beyond that, so a scope error is never the cause here (unlikedecide,profile, or the coupon routes, which do require a specific scope). -
POST /api/v1/t— enforce-mode validation rejected every event in the batch (422) — check the response body forerrors[].bash curl -s -X POST "https://api.retidal.com/api/v1/t?sync=1" \-H "X-API-Key: $RETIDAL_API_KEY" -H "Content-Type: application/json" \-d '{"eventName": "page_view", "visitorId": "vid_abc123"}'# a 422 body's errors[] names the field/rule that failed catalog validation -
POST /api/v1/t— a dependency is transiently unavailable (503) — this endpoint has no dedicated rate limit; a503(SELECTOR_LOOKUP_FAILEDorQUEUE_UNAVAILABLE) is the only transient-failure status it returns, and the response carriesretryAfter.A
503fails the whole request before any event is queued, so it will not appear in Console → Projects → Debug (which only shows events that were captured with?debug=1) — check your integration’s own request logs for the response code. -
POST /api/v1/t— the event was accepted asynchronously but persistence isn’t proven yet — the default202response only means the event was validated and dispatched to background processing, not that it reached storage.bash curl -s "https://api.retidal.com/api/v1/t?sync=1" \-H "X-API-Key: $RETIDAL_API_KEY" -H "Content-Type: application/json" \-d '{"eventName": "page_view", "visitorId": "vid_abc123"}'# a sync 200 with "processed": true is the only proof the event reached storage
Still stuck
Section titled “Still stuck”If the status code and body above don’t explain it, work through the health checklist.