Messenger error 200: Message Not Sent: person isn't available
Last verified against Meta for Developers - Messenger Platform error codes
Message Not Sent: This person isn't available right now.What error 200 means
Code 200 with subcode 1545041 reads like a permission error, code 200 belongs to the Graph API's permission block, but the subcode tells the real story: 1545041 is the same "this person isn't available right now" condition that surfaces as 551/1545041. The recipient cannot be delivered to: they have blocked the Page or its messages, deactivated their account, or restricted who may message them. Meta's error-codes table lists both codes with near-identical strings, and which one you receive depends on where in the pipeline the check fired, not on anything you can influence.
The practical consequence is that your error handler should classify by subcode here, not by code. A handler that routes all code-200 errors to "App Review problem" will tell your on-call engineer to resubmit for review because one user blocked the Page, a genuinely misleading alert. The review-wall variants (2018028, 2018027) have their own subcodes; 1545041 under any code means the same unreachable-recipient verdict.
As with 551, Meta will not disclose which specific condition applies, there is no reachability check, no appeal, and no retry that helps. The message is not queued for later; it was refused.
What it looks like
{
"error": {
"message": "(#200) Message Not Sent: This person isn't available right now.",
"type": "OAuthException",
"code": 200,
"error_subcode": 1545041,
"fbtrace_id": "BLBz/WZt8dN"
}
}Why it happens
- The person blocked the Page or turned off messages from it after previously chatting.
- The recipient's account is deactivated, deleted, or checkpointed.
- Privacy settings exclude the Page from who may message them.
- Automated follow-ups replaying PSIDs whose owners have since opted out.
- Error handlers misclassifying by code alone, masking the recipient-side nature of the failure.
How to fix Messenger error 200
- 1Classify by subcode: treat 1545041 identically under code 200 and code 551, as a permanent unreachable-recipient result.
- 2Mark the PSID unreachable and suppress it from all automated sends.
- 3Do not retry; the outcome is deterministic until the person re-engages.
- 4If the person later messages the Page again, clear the flag, an inbound event proves reachability.
- 5Alert only on aggregate spikes (possible Page-level restriction), never on individual occurrences.
How to stop it recurring
Build the unreachable flag into your contact model with an automatic reset on inbound activity, and make every campaign query exclude flagged PSIDs. Keep block rates low by respecting frequency and relevance, the same hygiene that avoids policy blocks. The unreachable-recipient trio (551, 200/1545041, 10/2018108) is contrasted in the Messenger troubleshooting guide.
Official reference: Meta for Developers - Messenger Platform error codes. See all Messenger error codes or the Messenger limits and quotas.
Related codes
- 551: This person isn't available right nowThis person isn't available right now.
- 551: User Block ErrorUser Block Error: This person isn't receiving messages from you right now.
- 10: This person cannot receive messagesThis Person Cannot Receive Messages: This person isn't receiving messages from…
- 100: No matching user foundNo matching user found
Error 200 - quick answers
What does Messenger error 200 mean?
Code 200 with subcode 1545041 reads like a permission error, code 200 belongs to the Graph API's permission block, but the subcode tells the real story: 1545041 is the same "this person isn't available right now" condition that surfaces as 551/1545041 . The recipient cannot be delivered to: they have blocked the Page or its messages, deactivated their account, or restricted who may message them.
How do I fix Messenger error 200?
1. Classify by subcode: treat 1545041 identically under code 200 and code 551, as a permanent unreachable-recipient result. 2. Mark the PSID unreachable and suppress it from all automated sends. 3. Do not retry; the outcome is deterministic until the person re-engages. 4. If the person later messages the Page again, clear the flag, an inbound event proves reachability. 5. Alert only on aggregate spikes (possible Page-level restriction), never on individual occurrences.
Should I retry after error 200?
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.