> ## Documentation Index
> Fetch the complete documentation index at: https://docs.decky-ai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

> Fixes for the most common connection, generation, and credit issues.

## Connection issues

<AccordionGroup>
  <Accordion title="Claude says Decky tools are not available" icon="plug-circle-xmark">
    **Claude Desktop / Claude Code / Cursor:**

    1. Confirm the server URL is exactly `https://mcp.decky-ai.com/mcp` (no trailing slash).
    2. Check the `Authorization` header is `Bearer dk_live_YOUR_KEY` (not `Token`, not `API-Key`).
    3. Restart Claude Desktop (quit fully, reopen).
    4. In Claude Desktop, click the tools icon to inspect connected tools. If Decky isn't listed, the config file has a syntax error — validate it at [jsonlint.com](https://jsonlint.com).

    **Claude.ai web:**

    1. Go to [claude.ai/customize/connectors](https://claude.ai/customize/connectors) and check the connector is listed as connected.
    2. If it shows an error, remove it and re-add `https://mcp.decky-ai.com/mcp`.
    3. Make sure you signed in to Decky with the same account as your platform account.
  </Accordion>

  <Accordion title="401 Unauthorized" icon="lock">
    Your API key is invalid, expired, or revoked.

    1. Go to [app.decky-ai.com](https://app.decky-ai.com) → **API Keys**.
    2. Check whether the key is listed and not revoked.
    3. If it's expired or revoked, create a new key and update your config.
    4. Keys are shown only once at creation — if you lost it, create a new one.
  </Accordion>

  <Accordion title="Your API key does not have the '…' scope" icon="shield-halved">
    Your key was created without the scope needed for the operation.

    1. Go to **API Keys** on the platform.
    2. The existing key cannot have scopes added — revoke it and create a new one with all needed scopes.
    3. The default "all scopes" option includes everything.
  </Accordion>
</AccordionGroup>

## Generation issues

<AccordionGroup>
  <Accordion title="The deck is taking a long time" icon="clock">
    Generation time scales with slide count:

    | Slides | Typical time       |
    | ------ | ------------------ |
    | 5      | \~2–4 minutes      |
    | 10     | \~4–8 minutes      |
    | 20     | \~8–15 minutes     |
    | 40     | up to \~25 minutes |

    This is expected. Claude polls automatically — you don't need to keep the conversation open.
  </Accordion>

  <Accordion title="Job failed" icon="triangle-exclamation">
    The `error` field on the job object explains why. Common causes:

    | Error message                      | Fix                                                                |
    | ---------------------------------- | ------------------------------------------------------------------ |
    | `Generation error: content policy` | The prompt was blocked. Rephrase it.                               |
    | `Storage unavailable`              | Transient issue. Retry with `create_deck`.                         |
    | `Template processing failed`       | The master file may be corrupted. Re-upload it from the dashboard. |

    All credits from a failed job are refunded automatically.
  </Accordion>

  <Accordion title="The download link expired" icon="link-slash">
    Download links are short-lived (a few minutes). Ask Claude for a fresh one:

    > "Can you give me a new download link for my deck?"

    Claude calls [`get_deck_download_url`](/tools/get-deck-download-url) again with the same job ID.
  </Accordion>

  <Accordion title="The deck file has expired" icon="calendar-xmark">
    Deck files are stored for **30 days**, then deleted. Regenerate:

    > "Regenerate the deck about \[topic] — the old one expired."
  </Accordion>
</AccordionGroup>

## Credit issues

<AccordionGroup>
  <Accordion title="Insufficient credits" icon="coins">
    You don't have enough credits in the current period. Options:

    * Ask for fewer slides: "Create a 5-slide deck instead of 10."
    * Wait until your period resets — [`check_usage`](/tools/check-usage) shows the `period_end` date.
    * Upgrade at [app.decky-ai.com](https://app.decky-ai.com) → **Billing**.
  </Accordion>

  <Accordion title="Too many active jobs" icon="layer-group">
    You have too many queued/running jobs. Wait for one to finish, or cancel one:

    > "Cancel my currently running deck job."
  </Accordion>
</AccordionGroup>

## Still stuck?

<Card title="Contact support" icon="life-ring" href="mailto:support@decky-ai.com" horizontal>
  Email **[support@decky-ai.com](mailto:support@decky-ai.com)** or visit [app.decky-ai.com](https://app.decky-ai.com).
</Card>

When you reach out, include:

* The **job ID** (e.g. `job_abc123`) if the issue is with a specific deck.
* The **error message** you saw.
* Which **client** you're using (Claude.ai web, Claude Desktop, Cursor, etc.).
