Conversions failing
Diagnose why a conversion (metering) event isn't counting toward decisioning or reward totals.
Symptom
Section titled “Symptom”A conversion is not counting toward the metrics, decisioning history, or reward totals you expect — a purchase or metering event happens but nothing about it shows up downstream.
Likely causes
Section titled “Likely causes”A backfilled metering event is missing its eventId
POST /internal/backfill/eventsrequires every metering (conversion) event to carry a client-suppliedeventId; a missing one fails the whole request rather than skipping just that event.bash curl -s -X POST https://api.retidal.com/internal/backfill/events \-H "X-API-Key: $RETIDAL_API_KEY" -H "Content-Type: application/json" \-d '{"events": [{"eventName": "user_paid", "visitorId": "vid_abc123"}]}'# 400 { "error": "MISSING_EVENT_ID", "affectedIndices": [...] }The metering event failed to enqueue and the failure was never retried
POST /api/v1/tenqueues metering (conversion) events to the metering ingest queue synchronously, before it responds. A missing queue binding or a failed send returns503for the whole request — if your integration doesn’t check for503on this call and retry afterretryAfterseconds, the conversion is silently dropped rather than counted later.bash curl -s -X POST https://api.retidal.com/api/v1/t \-H "X-API-Key: $RETIDAL_API_KEY" -H "Content-Type: application/json" \-d '{"eventName": "purchase", "visitorId": "vid_abc123"}'# 503 { "error": "QUEUE_UNAVAILABLE", "retryAfter": 60 }# 503 { "error": "SELECTOR_LOOKUP_FAILED", "retryAfter": 30 }POST /api/v1/treturning503fails the whole request before the 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 on the call that carried this conversion.
Still stuck
Section titled “Still stuck”If the debug log shows the event arrived correctly and it still isn’t reflected downstream, see Decisioning not firing.