Messenger Platform · error code

Messenger error 100: No matching user found

Permanent - do not retryHTTP 400Recipient & delivery

Last verified against Meta for Developers - Messenger Platform error codes

What Messenger returns
No matching user found

What error 100 means

Code 100 with subcode 2018001 means the recipient ID in your request does not resolve to anyone this Page is allowed to message. It is the most misread error in the Messenger catalogue, because the user usually does exist; the ID is simply not their ID for this Page.

Messenger recipient IDs are Page-scoped IDs (PSIDs). The same person has a different PSID for every Page they talk to, and PSIDs are additionally scoped to the app-Page pair, so several common migrations silently invalidate every stored ID: pointing your code at a different Page, replacing the Meta app that the Page subscription runs through, or importing contact IDs from another system. IDs from Facebook Login are app-scoped IDs (ASIDs), a different namespace entirely, and Meta's docs state plainly that they will not work with the Messenger Platform. Numeric profile IDs scraped from facebook.com URLs will not work either.

The other classic trigger is messaging someone who has never messaged you. A PSID only comes into existence when the person first interacts with your Page through a Messenger entry point; you cannot construct one, and you cannot cold-message. If you need a way for people to start the conversation, point them at an m.me link (see the Messenger link generator) or a chat plugin, and capture the PSID from the resulting webhook event.

What is NOT wrong: your token and permissions (those fail with 190 or 200), the messaging window (code 10), and the person's reachability (blocked users return 551). This is a data problem in your own storage layer, which also makes it the most fixable of the delivery errors: unlike 551 there is a concrete engineering remedy, described in the Messenger troubleshooting guide.

What it looks like

{
  "error": {
    "message": "(#100) No matching user found",
    "type": "OAuthException",
    "code": 100,
    "error_subcode": 2018001,
    "fbtrace_id": "BLBz/WZt8dN"
  }
}

Why it happens

  • Sending to an app-scoped ID from Facebook Login, or to a raw profile ID, instead of a Page-scoped ID.
  • Using a PSID captured under a different Page, or under a different app connected to the same Page.
  • Replaying PSIDs after migrating Pages or apps without re-keying the contact database.
  • Attempting to message a person who has never interacted with the Page, so no PSID exists.
  • Truncated or corrupted IDs, for example numeric overflow when PSIDs were stored as 32-bit integers or floats.

How to fix Messenger error 100

  1. 1Log the exact recipient ID that failed and compare it with the sender.id of a fresh inbound webhook event from the same person; if they differ, your stored ID is from the wrong scope.
  2. 2Use only PSIDs taken from your own webhook events (sender.id on messages, postbacks and opt-ins) for the same Page and app.
  3. 3After a Page or app migration, re-key contacts with Meta's ID-matching API, available to apps whose Pages are linked to a Business Manager.
  4. 4Store PSIDs as strings, never as numeric types, to avoid silent precision loss.
  5. 5For contacts that cannot be re-matched, wait for their next inbound message and capture the new PSID then.

How to stop it recurring

Treat the PSID as scoped data, not as a user ID: key it by (app, Page, person) and invalidate the column on any migration. Never mix ID namespaces; keep Facebook Login ASIDs in a separate field if you store them at all. Validate at capture time, PSIDs arrive only via webhooks, so any ID that entered your system another way is suspect. The identifier rules are summarized in the limits reference, and the same scoping trap on Instagram is covered in the Instagram messaging guide.

Official reference: Meta for Developers - Messenger Platform error codes. See all Messenger error codes or the Messenger limits and quotas.

Related codes

Error 100 - quick answers

What does Messenger error 100 mean?

Code 100 with subcode 2018001 means the recipient ID in your request does not resolve to anyone this Page is allowed to message. It is the most misread error in the Messenger catalogue, because the user usually does exist; the ID is simply not their ID for this Page . Messenger recipient IDs are Page-scoped IDs (PSIDs).

How do I fix Messenger error 100?

1. Log the exact recipient ID that failed and compare it with the sender.id of a fresh inbound webhook event from the same person; if they differ, your stored ID is from the wrong scope. 2. Use only PSIDs taken from your own webhook events (sender.id on messages, postbacks and opt-ins) for the same Page and app. 3. After a Page or app migration, re-key contacts with Meta's ID-matching API, available to apps whose Pages are linked to a Business Manager. 4. Store PSIDs as…

Should I retry after error 100?

No. Retrying the same request produces the same error; the condition has to be fixed first. Treat it as a permanent failure for that message and surface it, rather than looping.

Stop debugging Messenger by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.