Blog

Debugging Meta CAPI in the Events Manager test tool

The test tool catches malformed events before they reach production. Here is what each warning actually means.

Meta Events Manager has a Test Events tab that lets you verify CAPI events before they hit your production pixel. Most teams use it once at setup and never again, missing the diagnostic information it surfaces continuously. The warnings it shows have specific meanings worth knowing.

Setting up the test code

Open Events Manager, find your dataset, click Test Events. Generate a test event code (it looks like TEST12345). Add this code to the test_event_code field on outgoing events from your tagging server.

Events with this code are routed to the test view instead of production. They do not affect your campaign reporting or count toward attribution.

"This event was received but had errors"

The event reached Meta but at least one field failed validation. Click the event to see which field. The most common offenders: malformed phone numbers (must be E.164), invalid email format (must be RFC 5322 compliant), and unsupported currency codes.

"Match key was sent but cannot be matched"

Meta received your hashed email or phone but could not match it to a profile. Either the user is not on Facebook, or the hash format is wrong. Compare your hash output against the reference hash for jane@example.com to verify your template is producing the expected format.

"Event time is more than 7 days old"

Meta drops events older than 7 days. If you batch events for any reason, double-check the timestamp at the moment of sending, not the moment of receiving. The fix is usually to forward events immediately rather than queuing them.

"This event will be deduplicated against pixel event"

Not an error, but a confirmation that your event_id setup is working. Meta has identified that your CAPI event matches a Pixel event with the same event_id and is keeping the first one received. This is the desired state.

"Action source is missing or invalid"

Every CAPI event needs an action_source field set to one of: website, email, app, phone_call, chat, physical_store, system_generated, business_messaging, other. Server-side events from sGTM should set this to website. The Meta tag template in sGTM does this automatically; if you wrote a Custom Template, you may have skipped it.

What the test tool does not show

Match quality scores. Those only update on production events, with a delay of up to 24 hours. The test tool tells you whether the event was structurally valid; it does not tell you how well it will optimise your campaigns. For that, look at the EMQ score in the Diagnostics section once your real events are flowing.