Skip to content

Conversions failing

Diagnose why a conversion (metering) event isn't counting toward decisioning or reward totals.

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.

  1. A backfilled metering event is missing its eventId

    POST /internal/backfill/events requires every metering (conversion) event to carry a client-supplied eventId; 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": [...] }
  2. The metering event failed to enqueue and the failure was never retried

    POST /api/v1/t enqueues metering (conversion) events to the metering ingest queue synchronously, before it responds. A missing queue binding or a failed send returns 503 for the whole request — if your integration doesn’t check for 503 on this call and retry after retryAfter seconds, 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/t returning 503 fails 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.

If the debug log shows the event arrived correctly and it still isn’t reflected downstream, see Decisioning not firing.