LinkedIn errors
LinkedIn posting errors: what each code means and what to do
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.
- Checked on
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 | What it means | 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 | What it means | 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 | What it means | 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 | What it means | 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
Not special to LinkedIn: the request, the plan and the file in your library. The API reference lists every code.
| HTTP | Code | What it means | 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 .
UNPROCESSABLE_ENTITYAs 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_REQUESTSAs 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_LONGAs 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_FIELDAs 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_DENIEDAs 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.
CONFLICTAs 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.
LinkedIn error questions
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.
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.
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.
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.
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.
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's pages this rests on
Sources read on 15 October 2026.
- L1LinkedIn Posts API (no date shown)
- L8LinkedIn UGC Post API (legacy) (no date shown)
- L22LinkedIn API Rate Limiting (no date shown)
Start posting to LinkedIn
LinkedIn is on every plan, Free included. This page was checked on 26 October 2026.