Instagram error 100: Invalid parameter
Last verified against Meta for Developers - Messenger Platform error codes
Bad Parameter Error: Invalid FBID.What error 100 means
Code 100 is the Graph API's parameter-validation failure: something in your request - an ID, a field name, a value's type or format - does not match what the endpoint expects. On the Messenger Platform error page the base forms are documented as "Bad Parameter Error: Invalid FBID." and "Bad Parameter Error: No matching user found.", and for Instagram messaging it is by far the most common non-auth error during development.
The subcode carries the real diagnosis, and Instagram has a whole family of them: 2534013 (Page not linked to an Instagram account), 2534014 (no matching Instagram user - almost always a wrong ID type), 2534015 (invalid message data), plus the attachment subcodes 2018008, 2018047 and 2018109. A bare 100 with no subcode usually means an ID that is not resolvable at all: a username where an Instagram-scoped ID (IGSID) belongs, a truncated ID, or an ID copied from the wrong object type.
The critical Instagram-specific rule: recipients are addressed by Instagram-scoped IDs delivered in your webhook events. Instagram user IDs from other APIs, usernames, and Facebook PSIDs are different namespaces and will not resolve. IGSIDs are also scoped per account-and-app pairing, so IDs harvested under one Page or app do not transfer to another.
What it looks like
{
"error": {
"message": "(#100) No matching user found",
"type": "OAuthException",
"code": 100,
"error_subcode": 2018001,
"fbtrace_id": "Qr6sT1uV8wXy"
}
}Why it happens
- The recipient id is a username, an Instagram user ID from the content APIs, or a Facebook PSID instead of the IGSID from your webhook.
- An IGSID collected under a different app or Page pairing is being reused where it is not valid.
- The JSON structure is wrong for the message type - for example a payload field misspelled, or an object where the endpoint expects an array.
- The wrong ID is in the URL path: an Instagram account ID where the Page ID belongs on /PAGE-ID/messages, or vice versa on the Instagram Login route.
- A template or attachment references an ID (product, attachment, comment) that does not exist or is not visible to your app.
How to fix Instagram error 100
- 1Log the failing request body verbatim and compare it field by field with the send-message reference for your route.
- 2Verify the recipient IGSID came from a webhook event for this same account and app; if it did not, you cannot send to it.
- 3Check the endpoint path: Page ID on the Messenger Platform route, Instagram account ID on the Instagram Login route.
- 4Reproduce the send in the Graph API Explorer with the same token - the interactive error is often more specific.
- 5Read error_subcode and jump to the specific entry: 2534013, 2534014, 2534015, or the 2018xxx attachment family.
How to stop it recurring
Validate outbound payloads against a per-message-type schema before they leave your service, and treat IGSIDs as opaque tokens scoped to one account-app pairing - store them with that scope and never share them across connections. Keep the two API routes' endpoint builders separate so the wrong ID cannot reach the wrong path. The ID plumbing that produces most 100s is diagrammed in the Instagram troubleshooting guide, and message-shape ceilings (text length, template caps) live in the limits reference.
Official reference: Meta for Developers - Messenger Platform error codes. See all Instagram error codes or the Instagram limits and quotas.
Related codes
- 100: Page is not linked to an Instagram accountThe page is not linked to an Instagram account
- 100: No matching Instagram userNo matching Instagram user
- 100: Invalid message dataInvalid message data
- 100: Failed to fetch the file from the URLFailed to fetch the file from the url. Check that the URL is valid, with a…
- 100: Attachment size exceeds allowable limitAttachment size exceeds allowable limit
Error 100 - quick answers
What does Instagram error 100 mean?
Code 100 is the Graph API's parameter-validation failure: something in your request - an ID, a field name, a value's type or format - does not match what the endpoint expects.
How do I fix Instagram error 100?
1. Log the failing request body verbatim and compare it field by field with the send-message reference for your route. 2. Verify the recipient IGSID came from a webhook event for this same account and app; if it did not, you cannot send to it. 3. Check the endpoint path: Page ID on the Messenger Platform route, Instagram account ID on the Instagram Login route. 4. Reproduce the send in the Graph API Explorer with the same token - the interactive error is often more…
Stop debugging Instagram by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.