Errors
Errors come back as { "error": { "code", "message" } }: as the HTTP response body on the REST API, and as a tool result with isError: true on the MCP server. Branch on code; the message is for people.
Error format
{
"error": {
"code": "rate_limited",
"status": 429,
"message": "Rate limited: …",
"retryAt": "2026-01-01T12:00:00.000Z"
}
}Error codes
| Code | HTTP status | Meaning |
|---|---|---|
bad_request | 400 | The request body is not valid JSON. |
invalid_input | 400 | A parameter is missing, has the wrong type or is out of range. The message names it. |
account_required | 400 | Pass accountId: the workspace has several LinkedIn accounts (or none is connected). |
session_account_not_supported | 400 | A session-connected account cannot publish through the OAuth publishing path; use linkedin_create_post. |
unauthorized | 401 | No API key or OAuth token, or it is unknown, revoked or expired. |
insufficient_scope | 403 | The key or token lacks the scope the call needs (see Authentication). |
self_approval_forbidden | 403 | An action cannot be approved with the API key that proposed it. |
not_owner | 403 | The conversation is not in this account's mailbox. |
cross_site_request | 403 | The dashboard refused a request from another site. |
account_not_found | 404 | No LinkedIn account with this id in your workspace. |
action_not_found | 404 | No pending action with this id that this key can see. |
api_key_not_found | 404 | No active API key with this id. |
unknown_operation | 404 | The REST operation name is not one of the supported operations. |
action_not_pending | 409 | The action was already approved, rejected, run or expired. |
needs_reconnect | 409 | The LinkedIn session expired or hit a checkpoint. Reconnect the account under Accounts. |
own_urn_missing | 409 | The account's own profile urn is not known yet; it is set once the session is verified live. |
action_expired | 410 | The action expired before it was approved. Propose it again. |
unsupported_media_type | 415 | Send Content-Type: application/json. |
invalid_linkedin_session | 422 | The LinkedIn cookies given to connect an account are not a valid session. |
account_paused | 423 | The account is paused (by you, or by the safety breaker after LinkedIn pushed back) until the time in the message. |
rate_limited | 429 | A rate limit or an account budget is used up. retryAt (and the Retry-After header on the API) says when to retry. See Rate limits. |
internal | 500 | An unexpected error. Retry later; nothing was sent to LinkedIn twice. |
unverified_operation | 501 | A Beta operation whose LinkedIn request shape is not verified is turned off on this server. |
not_configured | 503 | The server has no database configured. |
auth_not_configured | 503 | Sign-in is not configured on this server. |
proxy_unavailable | 503 | No residential proxy is available for this account right now. |
Updated · Markdown version
