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

Example
{
  "error": {
    "code": "rate_limited",
    "status": 429,
    "message": "Rate limited: …",
    "retryAt": "2026-01-01T12:00:00.000Z"
  }
}

Error codes

CodeHTTP statusMeaning
bad_request400The request body is not valid JSON.
invalid_input400A parameter is missing, has the wrong type or is out of range. The message names it.
account_required400Pass accountId: the workspace has several LinkedIn accounts (or none is connected).
session_account_not_supported400A session-connected account cannot publish through the OAuth publishing path; use linkedin_create_post.
unauthorized401No API key or OAuth token, or it is unknown, revoked or expired.
insufficient_scope403The key or token lacks the scope the call needs (see Authentication).
self_approval_forbidden403An action cannot be approved with the API key that proposed it.
not_owner403The conversation is not in this account's mailbox.
cross_site_request403The dashboard refused a request from another site.
account_not_found404No LinkedIn account with this id in your workspace.
action_not_found404No pending action with this id that this key can see.
api_key_not_found404No active API key with this id.
unknown_operation404The REST operation name is not one of the supported operations.
action_not_pending409The action was already approved, rejected, run or expired.
needs_reconnect409The LinkedIn session expired or hit a checkpoint. Reconnect the account under Accounts.
own_urn_missing409The account's own profile urn is not known yet; it is set once the session is verified live.
action_expired410The action expired before it was approved. Propose it again.
unsupported_media_type415Send Content-Type: application/json.
invalid_linkedin_session422The LinkedIn cookies given to connect an account are not a valid session.
account_paused423The account is paused (by you, or by the safety breaker after LinkedIn pushed back) until the time in the message.
rate_limited429A 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.
internal500An unexpected error. Retry later; nothing was sent to LinkedIn twice.
unverified_operation501A Beta operation whose LinkedIn request shape is not verified is turned off on this server.
not_configured503The server has no database configured.
auth_not_configured503Sign-in is not configured on this server.
proxy_unavailable503No residential proxy is available for this account right now.

Updated · Markdown version