Instagram error 100: Comment is invalid for a private reply
Last verified against Meta for Developers - Messenger Platform error codes
The comment is invalid for a private replyWhat error 100 means
Subcode 2534025 rejects a private reply - the comment-to-DM feature - because the target comment cannot receive one. Meta documents private replies with hard rules: the reply must be sent "within 7 days from when the comment was created" for comments on posts, ads and reels; replies to Instagram Live comments "can only be sent during the live broadcast"; and "only one message can be sent" per comment. Break any of these - or target a comment that was deleted, or one authored by the account itself - and the comment is "invalid for a private reply."
This is a per-comment refusal, not a configuration problem. The same integration will succeed on a fresh comment while failing on an expired, deleted, or already-answered one. Comment-triggered DM automations mostly meet it in two forms: a backlog processor replying to comments older than 7 days, and a retry or duplicate event causing a second private reply to a comment that already consumed its single allowance.
Why it happens
- The comment is older than 7 days (posts, ads, reels), or the live broadcast has ended (live comments).
- A private reply was already sent for this comment - the one-message allowance is used up.
- The comment was deleted, or hidden in a way that invalidates it as a reply target.
- The comment was authored by the business account itself, or is otherwise not a repliable user comment.
- The comment ID is malformed or belongs to a media object outside this account.
How to fix Instagram error 100
- 1Check the comment's age before replying; skip anything past the 7-day boundary rather than sending and failing.
- 2Deduplicate on comment ID: record every private reply sent and drop repeat attempts, including webhook redeliveries.
- 3For live comments, gate the automation on the broadcast being active.
- 4Verify the comment still exists (fetch it) when processing backlogs, since users delete comments freely.
- 5If the person also has an open DM conversation, reply there instead - the standard messaging window is independent of comment rules.
How to stop it recurring
Design comment automations as real-time consumers of the comments webhook rather than batch sweeps, so the 7-day and one-reply rules are naturally respected. Persist a sent-marker per comment ID with the same durability as the messages themselves. The private-reply rules and the rate ceilings that apply to them (750 per hour on posts and reels) are tabulated in the limits reference, and the window family's DM-side twin is 10/2534022.
Official reference: Meta for Developers - Messenger Platform error codes. See all Instagram error codes or the Instagram limits and quotas.
Related codes
Error 100 - quick answers
What does Instagram error 100 mean?
Subcode 2534025 rejects a private reply - the comment-to-DM feature - because the target comment cannot receive one. Meta documents private replies with hard rules: the reply must be sent "within 7 days from when the comment was created" for comments on posts, ads and reels; replies to Instagram Live comments "can only be sent during the live broadcast"; and "only one message can be sent" per comment.
How do I fix Instagram error 100?
1. Check the comment's age before replying; skip anything past the 7-day boundary rather than sending and failing. 2. Deduplicate on comment ID: record every private reply sent and drop repeat attempts, including webhook redeliveries. 3. For live comments, gate the automation on the broadcast being active. 4. Verify the comment still exists (fetch it) when processing backlogs, since users delete comments freely. 5. If the person also has an open DM conversation, reply there…
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 Instagram by hand
Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.