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

# Troubleshooting

> Common eval and prompt failures

## A run stays `running`

Coding trials can take several minutes. Poll every two seconds and check for new trajectory events. If no cell advances, inspect server logs and provider status.

A server restart does not resume active work. The reconciler marks abandoned runs failed after six hours by default.

## A trial is `void`

The trial lacks evidence for a verdict. Check `voidFields` and the trial trajectory. Common causes are a missing verifier, a verifier that could not execute, or a test runner that found zero tests.

Void trials do not affect pass rate. Fix the evidence before interpreting the cell.

## A cell is `incomparable`

The baseline or candidate has no scored trials. `comparison.reason` identifies the missing side. Check provider failures, verifier output, and `voidFields`.

## A cell cannot be rerun

`evals.rerunCell` needs a run id and cell key from the same `evals.get` response. Older cells without a workspace snapshot cannot be rerun. Start a new run from the original case instead.

## No models are returned

`evals.models({ harness: "codex" })` reads the server's Codex model cache. Open the Codex model picker on the server to populate it, then check the configured account's model access.

## `MissingApiKey`

Set `ANPORD_API_KEY` before creating the client, or pass `apiKey` to `new Anpord()`.

## A prompt returns `fallback` or `stale`

`fallback` means the API was unavailable, no cached value existed, and the caller supplied a fallback. Without one, the SDK throws. `stale` means an awaited refresh failed and the SDK returned the last good value. `prompt.anpord.reason` contains the original failure.

Create one client at module scope so requests share its memory cache.

## A prompt change is not visible

Updating adds a version but does not move a channel. Promote the version. Cached readers may receive the old version while a refresh runs after the TTL.

## Prompt variable types are wrong

Run `anpord generate` after adding, removing, or renaming a variable. Commit the updated `anpord-env.d.ts` with the calling code.

## Catch API errors

```ts theme={null}
import { AnpordError } from "anpord";

try {
  await anpord.evals.get({ id: "missing" });
} catch (error) {
  if (error instanceof AnpordError) {
    console.error(error.status, error.message);
  }
}
```
