# LinkedIn posting errors: what each code means and what to do

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

Checked on 26 October 2026.

A LinkedIn post through Status 200 Uploads can be refused by us before anything is sent, or by LinkedIn itself. Our refusals carry a fixed code, such as reconnect_required or MEDIA_TOO_LARGE, with a sentence saying what to do. A refusal LinkedIn makes, such as a duplicate post, arrives as platform_error with LinkedIn's reason in the message. This page lists both, with whether sending the same request again can work.

## How to read an error

Every refusal is JSON with error.code and error.message. On LinkedIn, the message carries most of the detail: a refusal LinkedIn makes as we send the post comes back as HTTP 500, code platform_error, with LinkedIn's own words after "Post failed:". Read it before you send the post again.

A LinkedIn post is text on its own, or text with one image or one video. When a post carries several files, each is uploaded to LinkedIn but only the first is attached to the post. The fields carousel and carouselName are accepted and not used; the answer warns field_not_used.

A post that reached the LinkedIn step gets a row in History, also when LinkedIn refuses it, so you can read the reason later. Refusals that come before it, such as a schedule time we cannot read, leave no failed post behind.

## The connection to your LinkedIn account

LinkedIn sign-ins expire after a while, and LinkedIn can end them sooner. When LinkedIn answers that the sign-in is no longer valid, 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` | LinkedIn did not accept the saved sign-in: it expired or was revoked. | Reconnect LinkedIn on the Connections page, then publish the post again. | never: No. The same request cannot work: change it first. | API answer, History, AI app |

## When LinkedIn refuses the post

LinkedIn's refusals of the post itself come back under one code. Under an Idempotency-Key the answer is kept, so sending the same request again returns it instead of posting twice.

| HTTP | Code | Meaning | What to do | Send it again? | Where it shows |
| --- | --- | --- | --- | --- | --- |
| 500 | `platform_error` | LinkedIn refused the post, for example as a duplicate of a recent one, or the LinkedIn sign-in expired and could not be renewed. LinkedIn's reason, or our "Please reconnect", is in the message. | Read the message. Change the text of a duplicate; reconnect LinkedIn when the message asks you to. | resend_once_with_key: Once, with the same Idempotency-Key. | API answer, History |

## Images and videos

An image or video is uploaded to LinkedIn first, and the post is made after it. When the upload fails, no post is made.

| HTTP | Code | Meaning | What to do | Send it again? | Where it shows |
| --- | --- | --- | --- | --- | --- |
| 413 | `MEDIA_TOO_LARGE` | The video is larger than LinkedIn 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 |
| 400 | `bad_request` | Uploading the image or video to LinkedIn failed, for example because the file could not be downloaded from its address; the message has the reason. A media address that is not a web address gets this code too, before anything is sent. | Check that the file opens at its address, or upload it to your media library and post it by its mediaID. | never: No. The same request cannot work: change it first. | API answer, History |
| 422 | `media_failed` | The file's import into your media library failed, so there is nothing to attach. error.file_id names the file. | Import or upload the file again and post it by its new mediaID. | never: No. The same request cannot work: change it first. | API answer, AI app |

## Scheduled and queued posts

A LinkedIn post can go out now, at a time you set, or the next day when the day's posts of your plan are used. A 202 answer here is not a failure: the post was accepted.

| HTTP | Code | Meaning | What to do | Send it again? | Where it shows |
| --- | --- | --- | --- | --- | --- |
| 400 | `scheduled_for_invalid` | post.scheduledFor has no time zone, is not a date and time, or is more than 365 days ahead; error.reason says which. | Send an ISO 8601 time with its zone, such as 2026-11-02T08:30:00Z. | never: No. The same request cannot work: change it first. | API answer |
| 202 | `scheduled` | The time is more than a minute ahead: the post is held and sent to LinkedIn when it is due. | Nothing to do. Cancel it by its scheduled_post_id if plans change. | not_a_failure: No: it was accepted and goes out on its own. | API answer |
| 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. | 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 |

## LinkedIn's own errors

LinkedIn's own refusals of a post reach you inside platform_error's message, and History shows the same words. A sign-in LinkedIn no longer accepts becomes 401 reconnect_required instead. The codes below are LinkedIn's; what they mean comes from LinkedIn's API documentation on Microsoft Learn, read on 15 October 2026.

### UNPROCESSABLE_ENTITY

As the post is sent. LinkedIn could not process the post. Its older posting reference uses this status for a duplicate: "Content is a duplicate of" an earlier post. [L1, L8] LinkedIn's advice for a duplicate: wait 10 minutes for the duplicate restriction to expire, or change the content.

### TOO_MANY_REQUESTS

As the post is sent. A LinkedIn rate limit was reached. LinkedIn's daily limits are counted per app and per member, and reset at midnight UTC. [L1, L22] Post again after midnight UTC.

### FIELD_LENGTH_TOO_LONG

As the post is sent. A field of the post is longer than LinkedIn allows. [L1] Shorten the text and publish it again.

### INVALID_VALUE_FOR_FIELD

As the post is sent. A value in the post is not one LinkedIn accepts. [L1] Read LinkedIn's reason in the message and change that part of the post.

### ACCESS_DENIED

As the post is sent. The sign-in lacks a permission or a role the post needs. [L1] Reconnect LinkedIn and allow everything the sign-in asks for.

### CONFLICT

As the post is sent. LinkedIn met a conflict; its own advice is to retry the request. [L1] Check History that the post did not go out, then publish it again a moment later.

## Questions

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

LinkedIn did not accept the sign-in we hold for that profile: it expired or was revoked. Reconnect LinkedIn on the Connections page, then publish the post again. The failed post stays in History with the reason.

### Why does a LinkedIn duplicate post come back as platform_error?

A refusal LinkedIn makes as we send the post, such as a duplicate of a recent post, comes back as HTTP 500 with code platform_error and LinkedIn's reason in the message. Under an Idempotency-Key that answer is kept, so a resend never posts twice. Change the text before you post it again.

### Can I post several images to LinkedIn in one post through Status 200 Uploads?

No. A LinkedIn post through us is text, or text with one image or one video. When a post carries several files, only the first is attached. The carousel fields are accepted and not used, and the answer warns field_not_used.

### Is it safe to send a LinkedIn post again after platform_error?

With the same Idempotency-Key, yes: the answer is kept and returned again, never a second post. Without a key, check History first. Either way, read the message: a duplicate or a sign-in that must be renewed fails the same way until you change it.

### Why was my LinkedIn post refused with bad_request?

Uploading the image or video to LinkedIn failed, for example because the file could not be downloaded from its address, or a media address is not a web address at all. The message says which. Check the file, or upload it to your media library and post it by its mediaID.

### What does LinkedIn mean by "Content is a duplicate"?

LinkedIn refuses a post that repeats a recent one. Its own advice is to wait 10 minutes for the duplicate restriction to expire, or to change the content.

## More on LinkedIn

- [LinkedIn](https://status200uploads.com/platforms/linkedin)
- [LinkedIn API guide](https://status200uploads.com/platforms/linkedin/api-guide)

## Related

- [X](https://status200uploads.com/platforms/x)
- [Facebook](https://status200uploads.com/platforms/facebook)
- [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.

- L1. [LinkedIn Posts API](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api)
- L8. [LinkedIn UGC Post API (legacy)](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/ugc-post-api)
- L22. [LinkedIn API Rate Limiting](https://learn.microsoft.com/en-us/linkedin/shared/api-guide/concepts/rate-limits)
