Skip to content
OpenSmartRoute
Skillv1.0.0

intercom-common-errors

Diagnose and fix Intercom API errors by HTTP status code and error type. Use when encountering Intercom errors, debugging failed API requests, or troubleshooting integration issues. Trigger with phras

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (plugins/saas-packs/intercom-pack/skills/intercom-common-errors/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill intercom-common-errors. Copyright stays with the author (MIT).

Intercom Common Errors

Overview

Quick reference for diagnosing and fixing Intercom REST API errors by HTTP status code. Every Intercom error returns the same envelope, so triage is fast: read the errors[].code, match it to the table below, apply the fix.

All Intercom errors share this shape:

{
  "type": "error.list",
  "request_id": "req_abc123",
  "errors": [{ "code": "unauthorized", "message": "Access Token Invalid" }]
}

The full per-code catalog (causes + copy-paste fixes) lives in references/error-reference.md.

Prerequisites

  • An Intercom access token in INTERCOM_ACCESS_TOKEN (Developer Hub > Your App > Authentication).
  • curl and jq for the diagnostic commands.
  • For the TypeScript fixes: the intercom-client SDK (npm install intercom-client).

Instructions

  1. Capture the error. Grab the HTTP status and the JSON body. Use Read on your app logs, or Grep the codebase for the failing call site to see how the request is built.
  2. Match the code. Find the errors[].code in the Error Handling table below.
  3. Confirm the token/limits first. Run the diagnostic script in references/diagnostics.md to rule out auth and rate-limit issues in one shot.
  4. Apply the fix. Open references/error-reference.md, jump to your status code, and use the causes + fix snippet there.
  5. Retry only retryable errors. 429 and 5xx are retryable with backoff; 4xx client errors are not — fix the request instead.

Fast auth check:

curl -s https://api.intercom.io/me \
  -H "Authorization: Bearer $INTERCOM_ACCESS_TOKEN" \
  -H "Accept: application/json" | jq '.type'
# Returns "admin" when the token is valid

Output

You resolve the request into one of three outcomes:

  • Fixed request — a corrected token, added OAuth scope, valid payload, or existence check that makes the call succeed.
  • Backoff-and-retry — for 429 / 5xx, a retry wrapper that respects X-RateLimit-Reset and exponential backoff.
  • Escalation — for persistent 5xx, the request_id to hand to Intercom support along with the status-page state.

Error Handling

Error Code HTTP Retryable Action
unauthorized 401 No Regenerate token
forbidden 403 No Add OAuth scope
not_found 404 No Verify resource ID
conflict 409 No Search before create
parameter_invalid 422 No Fix input data
rate_limit_exceeded 429 Yes Backoff and retry
server_error 500+ Yes Retry, check status page

Limits: 10,000 req/min per app, 25,000 req/min per workspace. On 429, read X-RateLimit-Reset and wait until that epoch before retrying.

Examples

401 — invalid token. The auth check returns nothing instead of "admin". Regenerate the token in Developer Hub and update the app's env. Full walkthrough: references/error-reference.md.

409 — duplicate contact. create fails because the email/external_id already exists. Search first, then create:

const existing = await client.contacts.search({
  query: { field: "email", operator: "=", value: email },
});
return existing.data.length > 0
  ? existing.data[0]
  : client.contacts.create({ role: "user", email, externalId });

429 — rate limited. Wrap the call in exponential backoff that honors X-RateLimit-Reset. Full retry helper: references/error-reference.md.

For a full triage sweep (auth + rate limit + Intercom status in one command), run the script in references/diagnostics.md.

Resources

Next Steps

For deeper, end-to-end debugging of an Intercom integration — capturing request/response pairs, replaying failing calls, and correlating request_ids across a session — see the intercom-debug-bundle skill in this pack.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-intercom-comm-05bbf2/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-intercom-comm-05bbf2.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-intercom-comm-05bbf2",
  "kind": "skill",
  "name": "intercom-common-errors",
  "description": "Diagnose and fix Intercom API errors by HTTP status code and error type. Use when encountering Intercom errors, debugging failed API requests, or troubleshooting integration issues. Trigger with phrases like \"intercom error\", \"fix intercom\", \"intercom not working\", \"debug intercom\", \"intercom 401\", \"intercom 429\".",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding",
      "customer_support"
    ],
    "tags": [
      "skill-md",
      "saas",
      "support",
      "messaging",
      "intercom",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Diagnose and fix Intercom API errors by HTTP status code and error type. Use when encountering Intercom errors, debugging failed API requests, or troubleshooting integration issues. Trigger with phrases like \"intercom error\", \"fix intercom\", \"intercom not working\", \"debug intercom\", \"intercom 401\", \"intercom 429\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "plugins/saas-packs/intercom-pack/skills/intercom-common-errors/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/plugins/saas-packs/intercom-pack/skills/intercom-common-errors/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/plugins/saas-packs/intercom-pack/skills/intercom-common-errors/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Grep,",
      "Bash(curl:*)"
    ],
    "license": "MIT"
  },
  "instructions": "# Intercom Common Errors\n\n## Overview\n\nQuick reference for diagnosing and fixing Intercom REST API errors by HTTP\nstatus code. Every Intercom error returns the same envelope, so triage is\nfast: read the `errors[].code`, match it to the table below, apply the fix.\n\nAll Intercom errors share this shape:\n\n```json\n{\n  \"type\": \"error.list\",\n  \"request_id\": \"req_abc123\",\n  \"errors\": [{ \"code\": \"unauthorized\", \"message\": \"Access Token Invalid\" }]\n}\n```\n\nThe full per-code catalog (causes + copy-paste fixes) lives in\n[references/error-reference.md](references/error-reference.md).\n\n## Prerequisites\n\n- A",
  "cost": {
    "context_tokens": 1124
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-intercom-comm-05bbf2/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.