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

> ## Agent Instructions
> Leap's API is at https://api.tryleap.ai. Send the key in the x-api-key header or as Authorization: Bearer; keys start with leap_.
> Take model IDs and input schemas from GET /v1/models/{creator}/{name}, or from https://api.tryleap.ai/v1/public/models without a key. Never guess an input field: unknown fields are a 400.
> Model inputs take uploaded file IDs (file_...), never URLs.
> To give a coding agent the whole API, install the Leap skill: curl -fsSL https://www.tryleap.ai/install.sh | sh
> To make media from ChatGPT, Claude or another MCP client without code, connect Leap's MCP server at https://app.tryleap.ai/api/mcp; see https://www.tryleap.ai/docs/mcp.
> The full OpenAPI 3.1 spec is at https://www.tryleap.ai/docs/openapi.json.

# Troubleshooting

> Fixes for the usual problems with Leap's MCP server: sign-in that loops, no workspace or the wrong one, refused runs and uploads, expired links, a result view that doesn't show, and a video that never arrives.

The agent shows you Leap's refusals word for word, and most say what to change. These are the ones people meet most.

## Signing in

<AccordionGroup>
  <Accordion title="The sign-in page keeps coming back">
    Finish signing in in the same browser the app opened. If you open the sign-in email on another device, its link signs that device in instead: type the email's 6-digit code on the first computer.

    If you selected Deny, the app has no access. Remove Leap from the app and add it again to see the consent page again.

    To start over with an app that's half connected, disconnect it under Connected apps on Leap's [Connect page](https://app.tryleap.ai/go/connect), remove Leap from the app, and add it again.
  </Accordion>

  <Accordion title="The app asks me to sign in again every 15 minutes">
    It didn't get a refresh token, because it didn't ask for `offline_access`. Remove Leap and add it again. A custom client should ask for `workspace:read media:generate offline_access`.
  </Accordion>

  <Accordion title="Cursor says the server needs a login">
    Cursor didn't find `LEAP_API_KEY`, so it sent no key and Leap asked it to sign in, which Cursor can't do with Leap. Set the variable where Cursor can read it and restart Cursor, or check the spelling in `mcp.json`. See [Cursor](/docs/mcp/connect#cursor).
  </Accordion>

  <Accordion title="This origin cannot use the MCP server">
    A web page on another site called the server from a browser, which Leap refuses. Call it from a server, a desktop app or a CLI.
  </Accordion>
</AccordionGroup>

## Workspaces and access

<AccordionGroup>
  <Accordion title="You have no Leap workspace yet">
    New accounts get a workspace when they connect, so this is rare: it means you have none now, for example after leaving your only one. Open the link in the message, [app.tryleap.ai](https://app.tryleap.ai), finish setting up, and ask the agent again. You don't need to reconnect.
  </Accordion>

  <Accordion title="You belong to several workspaces">
    Tell the agent which one to use, by the slug in the message, for example "use my acme workspace for Leap". It passes that slug on each call for the rest of the chat.
  </Accordion>

  <Accordion title="The runs went to the wrong workspace">
    Each run belongs to the workspace the agent named on that call. Ask "which Leap workspace did you use?", or open the other workspace in the studio: its runs are marked Over MCP. From now on, name the workspace you want.
  </Accordion>

  <Accordion title="This connection may not spend credits">
    The app connected without `media:generate`. Remove Leap and add it again, and allow everything the consent page lists. With an API key, the message says the key lacks `generations:write`: use a key that has it.
  </Accordion>

  <Accordion title="This API key belongs to the workspace ...">
    A key works only in its own workspace. Leave `workspace` out, or connect with a key of the workspace you want.
  </Accordion>
</AccordionGroup>

## Runs

<AccordionGroup>
  <Accordion title="Not enough credit">
    The balance doesn't cover the run's price, so nothing started. The message links to where to add credits (in ChatGPT and Codex, to Leap's prices). Add credits at [app.tryleap.ai/go/settings/credits](https://app.tryleap.ai/go/settings/credits), then ask again. `get_account` shows the balance and what running jobs hold.
  </Accordion>

  <Accordion title="The run failed">
    A failed run isn't charged. Its `error` says why, and the agent should follow the advice that comes with it: change the prompt or photo after a safety refusal, use another photo or file when one was refused, or try again after a provider error. A retry needs a new `idempotency_key`, or it returns the same failed run. See [When a run fails](/docs/mcp/runs#when-a-run-fails-or-is-refused).
  </Accordion>

  <Accordion title="A photo was refused">
    Leap checks every photo before a run that takes it, and refuses one that may show someone under 18 or shows nudity. Nothing is held or charged. Use another photo. See [Photos of people](/docs/generations#photos-of-people).
  </Accordion>

  <Accordion title="The video never showed up">
    The result view checks on a running video for about 12 minutes. If it takes longer, or the app was closed, ask "check on run gen\_..." and the agent reads it with `get_generation`. Every run is also in the studio.
  </Accordion>

  <Accordion title="The tool call timed out">
    Leap answers within 50 seconds, even when the run is still going, and most clients wait 60. If your client allows less, raise its tool timeout, such as `tool_timeout_sec` in Codex. The run carries on either way: ask the agent to check on it.
  </Accordion>
</AccordionGroup>

## Files and links

<AccordionGroup>
  <Accordion title="Upload at most 4 MB">
    Images can be up to 4 MB. Resize the photo, for example to 2048 pixels on its long side, and try again.
  </Accordion>

  <Accordion title="Use an https URL, or the address is private">
    Leap fetches only public `https` links. A link that needs a sign-in, or that opens a viewer page instead of the file, won't work either: use a direct link to the file, or attach it in ChatGPT.
  </Accordion>

  <Accordion title="Leap couldn't download it, or the file is larger than 100 MB">
    Leap has 45 seconds to download a link and takes up to 100 MB. For a larger or slower file, upload it with the API's [direct uploads](/docs/files#upload-a-video-or-a-sound) and give the agent the file ID.
  </Accordion>

  <Accordion title="Send a PNG, JPEG or WebP image, an MP4, MOV or WebM video, or an MP3, WAV or M4A sound">
    The file isn't a type Leap takes, such as a HEIC photo from an iPhone or a GIF. Convert a picture to JPEG first.
  </Accordion>

  <Accordion title="Add credits to upload a video or a sound">
    Storing a video or a sound is free but needs some credit on the balance. Add credits and try again.
  </Accordion>

  <Accordion title="A link stopped working">
    Output links work for 24 hours. Ask the agent to read the run again ("send me a fresh link to that video"), and `get_generation` signs new ones. To use an image in the next run, the agent calls `keep_output`, which needs no link.
  </Accordion>
</AccordionGroup>

## The result view

<AccordionGroup>
  <Accordion title="I see text and thumbnails, not the player">
    Only apps that support MCP Apps draw the result view, such as ChatGPT and Claude. Claude Code, Codex and Cursor show the same result as text with links. In ChatGPT or Claude, start a new chat after Leap updates; in ChatGPT, select Refresh on Leap's plugin page to pick up new tools.
  </Accordion>

  <Accordion title="Pictures in the view don't load">
    The links may have expired after 24 hours. Ask the agent to check on the run, and the view gets fresh ones.
  </Accordion>

  <Accordion title="Tools are missing">
    The app may be holding an old list. In ChatGPT, select Refresh on Leap's plugin page. In Claude Code, reconnect `leap` from `/mcp`. In Codex, restart it.
  </Accordion>
</AccordionGroup>

Still stuck? Email [hello@tryleap.ai](mailto:hello@tryleap.ai) with the run's ID (`gen_...`) or the message the agent showed you.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.