# Facebook Page posting errors: what each code means and what to do

Canonical: https://status200uploads.com/platforms/facebook/errors

Checked on 26 October 2026.

A Facebook Page post through Status 200 Uploads can be refused by us before anything is sent, or by Facebook itself. Our refusals carry a fixed code, such as reconnect_required or media_wrong_for_post_type, with a sentence saying what to do. Facebook's own refusals arrive with Facebook's sentence in the message. When we sent the post and Facebook's answer was lost, the answer is still_publishing, never a failure. This page lists them all, with whether sending the same request again can work.

## How to read an error

Every refusal is JSON with error.code and error.message. A refusal Facebook made reaches you as HTTP 500 with error.code FUNCTION_ERROR (not yet listed in the API reference) and Facebook's own sentence in error.message. The one exception is a sign-in Facebook no longer accepts (Meta's code 190): that becomes 401 reconnect_required, because only you can fix it.

A Facebook post gets its row in History before it is sent, so a post that takes longer than the request still ends up in History with its outcome. A post we refuse before sending it, such as a video post with a picture attached, leaves no failed post behind.

When we sent the post and Facebook's answer never came back, the post may be live. The answer is then 202 still_publishing, and History marks the post as not confirmed while we ask Facebook whether it went out. Do not send it again in the meantime: a Page post cannot be deleted by Status 200 Uploads once it is out.

## The connection to your Facebook Page

We post as the Page of the connection, with the Page's own sign-in. When Facebook stops accepting it, the post shows in History as failed with this code.

| HTTP | Code | Meaning | What to do | Send it again? | Where it shows |
| --- | --- | --- | --- | --- | --- |
| 401 | `reconnect_required` | Facebook did not accept the saved sign-in: it expired, or Facebook ended the session (after a password change, for example). | Reconnect Facebook on the Connections page, then publish the post again. | never: No. The same request cannot work: change it first. | API answer, History, AI app |

## The post type and its file

A Facebook post through us is text, a photo, a video or a Reel (post.facebook.postType). We check the file against the type before anything is sent, because Facebook answers a file that does not fit with a sentence about its format.

| HTTP | Code | Meaning | What to do | Send it again? | Where it shows |
| --- | --- | --- | --- | --- | --- |
| 400 | `media_wrong_for_post_type` | A video or Reel post has a picture attached. Facebook cannot make a video from a still image. Nothing was sent. | Attach the video you meant, or choose postType photo for a picture. | never: No. The same request cannot work: change it first. | API answer, AI app |
| 400 | `api_error` | A photo, video or Reel post has no file at all. | Add a mediaID or a media address, or send it as a text post. | never: No. The same request cannot work: change it first. | API answer |
| 400 | `bad_request` | A text post (postType text, or no file and no post type) has no text, or a media address is not a web address (error.field names it). | Put the words in post.content.text, or send a full address that starts with https://. | never: No. The same request cannot work: change it first. | API answer |
| 400 | `media_not_available` | A scheduled post's file answers "not found" at its address: deleted, moved, or past the 7 days a library file is kept. | Upload the file again and schedule the post with its new mediaID. | never: No. The same request cannot work: change it first. | API answer, AI app |
| 413 | `MEDIA_TOO_LARGE` | The video is larger than Facebook takes through us. The answer names the limit in max_video_bytes. | Send a smaller video, or check the limit on the file limits page. | never: No. The same request cannot work: change it first. | API answer, History, AI app |

## Accepted, not failed

Two answers are 202: the post is on its way or waiting, and sending it again could post it twice.

| HTTP | Code | Meaning | What to do | Send it again? | Where it shows |
| --- | --- | --- | --- | --- | --- |
| 202 | `still_publishing` | We sent the post and Facebook's answer was lost, so it may already be on the Page. History shows it as not confirmed. | Do not send it again. Look at the Page, and let History settle: it offers Retry only once we found the post is not on the Page. | not_a_failure: No: it was accepted and goes out on its own. | API answer, History |
| 202 | `queued_for_next_day` | Your plan's posts for the day were used, so the post was queued for the next day instead of failing. The answer gives its scheduled_post_id. | Do not send it again. Cancel it by its scheduled_post_id if you no longer want it. | not_a_failure: No: it was accepted and goes out on its own. | API answer, AI app |

## Codes any post can get

| HTTP | Code | Meaning | What to do | Send it again? | Where it shows |
| --- | --- | --- | --- | --- | --- |
| 401 | `unauthorized` | No API key, or a key that is not active. | Send Authorization: Bearer with an active rl_ key from the API page. | never: No. The same request cannot work: change it first. | API answer |
| 403 | `account_not_found` | The accountId is not one of your profiles. The answer lists yours. | Use a profile id or "@name" from the list. | never: No. The same request cannot work: change it first. | API answer, AI app |
| 404 | `media_not_found` | The mediaID is not in your library: never imported, deleted, or removed after 7 days. | Import or upload the file again and use the new id. | never: No. The same request cannot work: change it first. | API answer, AI app |
| 409 | `media_processing` | The file is still importing. | Wait the Retry-After seconds and send the same request. | wait_and_resend: Yes: the same request after a wait (Retry-After, when the answer gives one). | API answer, AI app |
| 429 | `rate_limited` | Less than 20 seconds since your last post to the same network. | Wait the Retry-After seconds and send the same request. | wait_and_resend: Yes: the same request after a wait (Retry-After, when the answer gives one). | API answer, AI app |
| 429 | `daily_limit_reached` | Your plan's posts for today are used up. | Post after resets_at, or move to a larger plan. | after_reset: Not before the time in resets_at. | API answer, AI app |
| 429 | `monthly_limit_reached` | The Free plan's posts for this month are used up. | Post after resets_at, or move to a paid plan. | after_reset: Not before the time in resets_at. | API answer, AI app |
| 422 | `idempotency_key_reused` | The Idempotency-Key was already used with another body. | Use a new key for a new post. | never: No. The same request cannot work: change it first. | API answer |
| 500 | `server_error` | Our side failed. | Send it once more with the same Idempotency-Key; without one, check History first. | resend_once_with_key: Once, with the same Idempotency-Key. | API answer, AI app |
| 502 | `upstream_unavailable` | The request never left. Nothing was posted. | Send the same request again after a short wait. | wait_and_resend: Yes: the same request after a wait (Retry-After, when the answer gives one). | API answer |

## Facebook's own errors

When Facebook refuses a post as we send it, the answer is HTTP 500 with error.code FUNCTION_ERROR (not yet listed in the API reference) and Facebook's message in error.message, and History shows the same message. A sign-in Facebook no longer accepts becomes 401 reconnect_required instead. The numbers below are Meta's error codes; what they mean comes from Meta's Graph API error handling and Reels publishing pages, read on 15 October 2026.

### 190

As the post is sent. The access token expired or is no longer valid. Meta's subcode says why: 460 the password changed, 463 expired, 467 invalid, 492 the person who connected no longer has a role on the Page. [F12] Reconnect Facebook under Connections. For 492, have a Page admin give your Facebook account its role on the Page back first.

### 10

As the post is sent. Permission denied. Codes 200 to 299 also mean a permission is missing. [F12] Reconnect Facebook and allow everything the sign-in asks for, and check that your account can post on the Page.

### 368

As the post is sent. Facebook blocked the Page from posting for a while because of a policy violation. [F12] Wait before posting again, and look for a notice on the Page in Facebook.

### 506

As the post is sent. A duplicate post. Meta's words: "Duplicate posts cannot be published consecutively." [F12] Change the text, or post something else in between.

### 4

As the post is sent. The app reached its request limit. Codes 17 (user), 32 (Page), 613 (custom) and 80001 (Page business use case) are request limits too. [F12, F11] Wait, then publish it again later. Sending again at once will not help.

### 1609005

As the post is sent. Facebook could not post the link. [F12] Check the link in the post: it must be a full, working web address.

### 1363040

As a Reel is checked. The Reel's aspect ratio is not one Facebook takes. Meta's Reels page asks for 9:16. [F7] Export the Reel at 9:16 and publish it again.

### 1363127

As a Reel is checked. The Reel's resolution is too low: at least 540 × 960 pixels. [F7] Export the Reel at a higher resolution, such as 1080 × 1920.

### 1363128

As a Reel is checked. The Reel's length is outside 3 to 90 seconds, the range Meta's Reels publishing page states. [F7] Trim the Reel into that range, or post it as a video instead.

### 1363129

As a Reel is checked. The Reel's frame rate is outside 24 to 60 frames a second. [F7] Export the Reel at 30 frames a second and publish it again.

## Questions

### What does reconnect_required mean on a Facebook post?

Facebook did not accept the sign-in we hold for that Page: it expired, or Facebook ended the session. Reconnect Facebook on the Connections page, then publish the post again. The failed post stays in History with the reason.

### Why did my Facebook post answer still_publishing?

We sent the post and Facebook's answer never came back, so it may already be on the Page. It is a 202, not a failure: do not send it again. History shows it as not confirmed while we ask Facebook whether it went out.

### Can I retry a Facebook post that History shows as not confirmed?

Not while it is not confirmed: it may be live, and a retry could publish it twice. History offers Retry once we found that the post is not on the Page. Until then, look at the Page yourself.

### Why was my Facebook video refused with media_wrong_for_post_type?

A video or Reel post had a picture attached, and Facebook cannot make a video from a still image. We refuse it before anything reaches Facebook, so nothing is posted and no failed post is left. Attach the video, or choose postType photo for the picture.

### Why does a Facebook refusal come back as HTTP 500?

A refusal Facebook makes as we send the post is answered as HTTP 500 with Facebook's own sentence in the message. Read it before sending the post again: a duplicate post or a policy block fails the same way a second time. A sign-in Facebook no longer accepts is answered as 401 reconnect_required instead.

### What does Facebook error 368 mean?

Meta uses 368 when it temporarily blocks posting because of a policy violation. Wait before posting again, and look for a notice on the Page in Facebook.

### What does Facebook error 506 mean?

It is a duplicate post. Meta says "Duplicate posts cannot be published consecutively." Change the text, or post something else in between.

## More on Facebook

- [Facebook](https://status200uploads.com/platforms/facebook)
- [Facebook API guide](https://status200uploads.com/platforms/facebook/api-guide)

## Related

- [Instagram](https://status200uploads.com/platforms/instagram)
- [Threads](https://status200uploads.com/platforms/threads)
- [REST API](https://status200uploads.com/integrations/rest-api)
- [Python](https://status200uploads.com/integrations/python)
- [n8n](https://status200uploads.com/integrations/n8n)
- [AI agents (MCP)](https://status200uploads.com/integrations/mcp)
- [Every error code in the API reference](https://status200uploads.com/docs/api)
- [File limits of every network](https://status200uploads.com/docs/file-limits)

## Sources

Sources read on 15 October 2026.

- F7. [Video API: Reels Publishing](https://developers.facebook.com/docs/video-api/guides/reels-publishing)
- F11. [Graph API: Rate Limits](https://developers.facebook.com/docs/graph-api/overview/rate-limiting)
- F12. [Graph API: Handling Errors](https://developers.facebook.com/docs/graph-api/guides/error-handling)
