ModelRig Docs Leaderboard Console ↗ GitHub Sign up

Troubleshooting an empty console

The question this page answers: my pipeline ran, but /runs (or /inferences) is empty. Why?

Telemetry export never fails your pipeline, so a run that succeeded tells you nothing about whether it was exported. Work the checks below in order. Each one rules out one cause, and most take a minute.

The console is empty: five checks, in order. If /runs (or /inferences) is empty for the org in the header badge, work these checks in order. The full tree is https://modelrig.dev/troubleshooting.html.


1. npx modelrig doctor, from the environment your app runs in.
   no export sink configured → this process does not see MODELRIG_API_KEY: set it, redeploy, open a new shell.
   malformed key             → the value is truncated, quoted or padded: paste the whole rig_sk_… secret again.
   AUTH FAILED (401 / 403)   → the key is mistyped, revoked or not accepted: mint a key, set it, redeploy, open a new shell.
   whoami unreachable        → no network path to the ingest host (firewall, proxy, wrong MODELRIG_INGEST_URL): fix the route out, retry.
2. The org doctor prints is not the org in the badge → wrong org: switch the console, or mint a key in the org you meant.
3. /inferences has rows but /runs is empty → the calls are not inside run.scope / run.start.
4. A run is missing a step or a cost → that call is not on a ModelRig lane (see not-captured).
5. A doc describes something your install lacks → compare `npm ls modelrig` with the version stamp in modelrig.dev/llms.txt.

The decision tree


Is /runs (or /inferences) empty for the org in the header badge?
│
├─ 1. Is your code exporting at all?
│     Run: npx modelrig doctor            (from the same environment your app runs in)
│     ├─ "no export sink configured" → the key is unset: the process doesn't see MODELRIG_API_KEY.
│     │                          Set it → redeploy → open a NEW shell → doctor.
│     ├─ "AUTH FAILED" (401 / 403) → the key is mistyped, revoked, or from another deployment.
│     │                          Mint a new key → set MODELRIG_API_KEY → redeploy → open a NEW shell → doctor.
│     ├─ "malformed key" → the value starts like rig_sk_ but is truncated, quoted or padded.
│     │                          Paste the whole secret again (no quotes, no spaces) → redeploy → doctor.
│     ├─ "whoami unreachable" → no network path to the ingest host (firewall, proxy, wrong
│     │                          MODELRIG_INGEST_URL). Export is fire-and-forget, so fix the route out, then doctor.
│     ├─ (still "no export sink configured" after setting it) → the process doesn't see the new value
│     │                          (Render: a service override vs the env group; a shell opened
│     │                          before the deploy still has the old environment).
│     └─ "→ org «X» (slug) ✓" → go to 2
│
├─ 2. Is «X» the org you are looking at?
│     Compare it with the console's org badge. Member of several orgs → use the picker.
│     ├─ different → WRONG ORG. Your data is in «X». Either switch the picker to «X», or mint a key
│     │              in the org you want and replace MODELRIG_API_KEY. Add createRig({ expectOrg }).
│     └─ same → go to 3
│
├─ 3. /inferences has rows but /runs is empty?
│     → the calls aren't inside run.scope / run.start. See "Observe a pipeline".
│
├─ 4. /runs has the run but a step or a cost is missing?
│     → that call isn't on a ModelRig lane (a direct SDK call, a stream, a schema on a
│       fail-closed provider). See "Not captured".
│
└─ 5. A doc describes something your install doesn't have?
      npm ls modelrig  vs  the "as of vX.Y.Z" line at the top of modelrig.dev/llms.txt.
      Older than that → upgrade. A feature marked "unreleased" → it isn't on npm yet.

1. Is your code exporting at all?

Run npx modelrig doctor in the environment your app runs in: a shell on the hosted worker, the container, the CI job. Running it on your laptop checks your laptop's key, which may not be the one your app reads.

Don't read much into the last used time on the API keys page. It moves on any request the server accepts with that key (an export, a read, or doctor's own /v1/whoami call), and it's only updated every few minutes. A recent time doesn't prove exports are landing, and a key that's rejected with 401 never moves it at all.

2. Is «X» the org you are looking at?

Compare the org doctor printed with the org badge in the console header. If you belong to several organizations, the picker in the header decides which one every page shows.

If they differ, your data is fine: it's in «X». Either switch the console to «X», or, if «X» is the wrong home for it, mint a key in the right org and replace MODELRIG_API_KEY everywhere it's set. Then add expectOrg to createRig (or doctor --expect-org <slug> to your deploy checks) so the next mix-up is loud. Details: Orgs and keys.

3. /inferences has rows but /runs is empty

Your calls are recorded, but they aren't part of a run. A run exists only when your code opens one: wrap each pipeline execution in rig.artifacts.run.scope(...) (or run.start / run.end), and every rig.run / rig.runRaw call inside becomes a step. See Observe a pipeline.

4. The run is there, but a step or a cost is missing

The missing call didn't go through ModelRig. The usual causes: a direct provider SDK call, a stream read from a provider client, or a fallback after the raw lane refused a schema it can't enforce on that provider. A step that shows — for its cost (shown as cost n/a with Developer details on) has artifacts but no recorded call. See Not captured.

5. The docs describe something your install doesn't have

The docs track the published package. The top of llms.txt says which version they describe (as of modelrig vX.Y.Z). Compare it with npm ls modelrig in your project. If yours is older, upgrade. A surface marked "unreleased" in the docs isn't on npm yet.

Still empty?

If you're still stuck, keep the doctor output (it shows only the key's last four characters) and what the console badge shows — they are the first two things anyone helping you will ask for.

Related: Orgs and keys · Deploying · Not captured · Quickstart