CAPI Error Codes: A Cross-Network Reference
CAPI error codes look different on every network, but the failure layers repeat: a payload the server could not parse, a credential that failed, a permission that is missing, a pace that is too fast, or a platform outage. This reference maps those layers across Meta, TikTok, Reddit, Pinterest, and Snapchat, quoting each network's signature errors and linking the deep-dive guide where the full table lives.
The Shared Failure Layers
| Layer | What it means | Typical network response |
|---|---|---|
| Payload | The event body violates the schema or limits | 400-family errors |
| Credentials | The token is missing, invalid, or expired | 401-family errors |
| Permissions | The token works but lacks rights or scope | 403-family errors |
| Pacing | Rate limits or quota exhausted | 429-family errors |
| Platform | Service downtime | 500-family errors |
Reading an error as a layer diagnosis is faster than debugging blind: a 400 means the event values, a 401 the token itself, a 403 the account or scope, a 429 the send rate, and a 500 means waiting.
Signature Errors by Network
| Network | Signature error | What it means | Deep dive |
|---|---|---|---|
| Meta | 2804003 | An event older than 7 days - the whole request fails | Meta CAPI error 2804003 |
| Meta | Event Match Quality drops | Not an error - matching degrades silently | Meta CAPI error codes troubleshooting |
| TikTok | Event ID mismatch | Pixel and Events API copies both count | TikTok Events API error codes |
| "None were processed" (400) | One invalid event fails the entire batch | Reddit Conversions API errors | |
| 429 with default user agent | Throttled for a generic UA string | Reddit Conversions API errors | |
| 400 "unexpected data" | The v5 payload could not be parsed | Pinterest Conversions API errors | |
| Low EQS | Not an error - payload completeness degrades | Pinterest Conversions API errors | |
| Snapchat | Event without a match key | Hard rejection by design | Snapchat Conversions API errors |
| Snapchat | Cross-organization token | The token covers only its own org's pixels | Snapchat Conversions API errors |
Two of these deserve a second read. Meta's 2804003 fails the entire request for one stale event - timestamps older than seven days are rejected and nothing in the batch processes. Snap's match key gate is similarly absolute: an event without at least one hashed identifier errors out by design, which is why a payload template starts there.
OpenAI: The Youngest of the APIs
OpenAI's Conversions API is the newest of the networks in this reference, and its documented deduplication - a shared id plus matching event_name under the same Pixel ID - fails softly: mismatched identifiers double-count rather than error. The payload rules are in chatgpt-ads-standard-events, and the delivery template pattern in chatgpt-ads-server-side-gtm.
The Habit That Beats Every Error Table
Every network documents a validation surface - Meta's Test Events, Reddit's Event Testing with a test ID, Pinterest's test events and EQS, Snap's Test Event mirror - and the conversion ID plus match key discipline determines whether the errors are worth having. For pipelines that must survive all five networks at once, MOST applies per-network rules automatically, and Pixel Activator validates a single event by hand. The routing layer that feeds these APIs is covered in the server-side tracking performance guide.
Frequently asked questions
Sources
Sources
- Manual testing and validation: Pixel Activator fires free test events while you tune parameters.
- Automated delivery: Most routes conversions from your tracker or CRM continuously, with deduplication and retries handled.
