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

> ## Agent Instructions
> To build and serve your own model, start at /deploy/development/quickstart and /deploy/development/overview. Deploying is the default path: reactor init scaffolds a workspace, reactor auth login authenticates, and reactor model deploy registers the model, publishes the release with the weights/ folder, and activates it on Reactor's GPUs, in one command from that workspace. Docker must be running, because the publish step builds the image locally. Bump model.version in reactor.yaml before redeploying a change, because a release that already has an image is reactivated as it is. Deployment access is granted per account, so contact team@reactor.inc if a deploy is refused. Every key in reactor.yaml is documented at /deploy/platform/reactor-yaml. Model code imports reactor_runtime; Python client code imports reactor_sdk. The runtime overview explains the model interface. Running the model on your own machine with reactor run is optional and needs a GPU you attach with --gpus; /deploy/development/local-testing covers that loop and pairs a complete brightness model with a Python client test in a separate brightness-test workspace.
> Reactor hosts multiple models, each with its own connect slug (modelName) and command/event schema. The video model catalog — slug, typed SDK package, and links to its schema — is at /model-api-reference/overview. Robotics policy documentation starts at /robotics/overview; The launch policies are Cosmos Nano DROID (/robotics/cosmos/nano-policy-droid/), DreamZero DROID (/robotics/dreamzero/droid/), and FLUX Action DROID (/robotics/flux-action/droid/), organized by model family and embodiment. Some models expose one slug per experience (e.g. HappyOyster); always take the slug from the model's own pages, never guess it.
> Fastest path to a working app: `npx create-reactor-app my-app --model=<slug>` scaffolds a complete app with secure auth wired up. Typed TypeScript SDKs are published as @reactor-models/<model>; Python uses the base reactor-sdk package.
> Auth: exchange an API key (rk_...) for a JWT via POST https://api.reactor.inc/tokens from your server. Never put the API key in client-side code.
> Append .md to any docs URL for clean Markdown. Search these docs via the MCP server at https://docs.reactor.inc/mcp.

# Troubleshooting

> Diagnose missing action chunks, step echoes, and observation mapping for Praxis-1 YAM.

| Symptom | Check |
| - | - |
| Connection rejected or no capacity | Use `https://api.reactor.inc`, the correct model identifier, and an authorized key. Capacity errors can occur before inference; retry with backoff or contact Reactor. |
| No first chunk | Send `get_status` and read `waiting_for`. The session needs a task, 25 frames of every camera, and 25 valid rows of robot state for each arm. |
| No next chunk | Echo the last received `step` with `set_executed_step`. `session_status.awaiting_step` shows the value the session expects. |
| `prediction_failed` with `too_large` | Scale each frame down, and keep its aspect ratio. Send frames in 16:10 aspect, at most 416 pixels on the longer side. |
| `prediction_failed` with `invalid_input` | Check that `robot_state_json` parses, rows are finite, quaternions are nonzero, both arms are present, and views are 16:10. |
| `prediction_failed` with `task_too_long` | Shorten the task to 64 tokens or fewer. The 300-character limit alone does not guarantee this. |
| State ignored | Encode the state as a JSON string inside `robot_state_json`. Check the 32,000-character limit. |
| Correct shape, wrong motion | Check camera identities, the pose frame, quaternion order, and that you treat poses as absolute targets. Row counts do not prove embodiment compatibility. |
| Gripper moves the wrong way | Gripper values are absolute with `0` open. Convert your driver's units and polarity explicitly. |
| Chunk has fewer rows than expected | A chunk that starts an episode has 21 rows. This follows a new session, `reset_context`, or a failed prediction. |

## Report a problem

Include this information in your report:

* The model identifier, the SDK and client versions, and the session ID
* Timestamps, track names, and frame sizes
* The number of robot state rows
* The last received `step` and the last echoed `step`
* The `session_status` reply and the exact error text
* When the failure occurred: during connection, at the first prediction, or at a later chunk

Do not include an API key.


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