You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Infra failures (Lium pod, review/similarity/LLM infra) **auto-retry up to 3
137
137
times**; harness `EVAL_FAIL` (miner/model code) is terminal for that attempt
138
138
and is **not** auto-retried. Cheat / rejected verdicts are terminal. After an
139
-
infra failure (`ChallengeInternal`), you may **recover within 30 minutes**
140
-
via `POST /v1/submissions/{id}/retry` with **`X-Lium-Api-Key`** (required on
141
-
live when another GPU rent is needed). After 30 minutes the slot stays
142
-
blocked until your hotkey leaves the metagraph.
139
+
infra failure (`ChallengeInternal` / `control_plane_restart`), recover with
140
+
`POST /v1/submissions/{id}/retry` and **`X-Lium-Api-Key`** on live when
141
+
another GPU rent is needed — **no 30-minute cutoff** on `/retry` or on
142
+
re-POSTing the **same** pin+patch (that used to return `already-queued`
143
+
while the row stayed `failed`). A *different* ZIP while the slot is
144
+
`blocked` is still only accepted inside the 30-minute infra window.
143
145
144
146
### Retry vs re-POST
145
147
146
148
| Action | When | Headers |
147
149
|--------|------|---------|
148
-
| Re-POST the **same** ZIP | Always safe | Same as submit |Returns `200 already-queued` — **no new GPU run**; does not recover a failed row|
150
+
| Re-POST the **same** ZIP | Always safe | Same as submit |In-flight / scored → `200 already-queued`. Failed `ChallengeInternal` → same as `/retry` (`202 queued`)|
149
151
|`POST /v1/submissions/{id}/retry`| Row status is **`failed`** only |**`X-Lium-Api-Key`** on live (infra recovery); admin Bearer for operator non-infra retries | Requeues measure; wrong/missing Lium key → `400 missing_lium_api_key`|
150
152
|`/retry` on non-failed | — | — |`409 not_failed` — hotkey or Bearer alone does not change that |
Copy file name to clipboardExpand all lines: docs/external-miner/troubleshoot.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@
12
12
|`409 schedule` "daily manual run quota exceeded" | Manual anti-spam cap (10/day) — round-loop auto-enqueue does **not** spend it |`GET /v1/quota/{hotkey}` → `manual.remaining`; wait until next UTC day |
13
13
| Active harness but no runs this round | Rare race / restart before auto-enqueue; or eliminated cooldown | Wait for the round tick / ask ops `admin/rounds/current/requeue`; check `eliminated_until_round`|
14
14
|`auto_retry` events, class `install`| Dep won't install (bad name/version, heavy source build) | Design: `GET /v1/runs/{id}/logs`; Prism: `GET /v1/submissions/{id}/logs?since=`|
15
-
|`control_plane_restart` / `harness_detached`| Restart could not reattach (dead pod or unrecoverable BYOK seal) |Stop the Lium pod if still billing; resubmit with `X-Lium-Api-Key`. Healthy pods are resumed automatically — do not kill them on a routine master redeploy. |
15
+
|`control_plane_restart` / `harness_detached`| Restart could not reattach (dead pod or unrecoverable BYOK seal) |If `pod_id` is null, **no Lium pod was rented** — do not hunt a pod. `POST /v1/submissions/{id}/retry` (or re-POST the same ZIP) with `X-Lium-Api-Key`. Healthy pods with a `pod_id` resume automatically. |
16
16
| Run `failed` / Score 0 | Missing pages, timeout, crash |`GET /v1/runs/{id}/events`; ensure three required HTML pages |
17
17
| External call refused (`403`) | Target is internal-blocklisted (metadata IP, loopback, RFC1918/VPC, control plane) | Call public endpoints only; egress is otherwise open |
18
18
| Pages look empty in viewer | Sanitize stripped content | Scripts/`on*` handlers are removed; use static HTML/CSS |
@@ -35,7 +35,7 @@
35
35
|`similar: true` on precheck | Would hit intake copy gate | Change the patch vs prior champions; starting from the operator pin is fine |
36
36
|`429 precheck_quota_exceeded`| 3 prechecks/coldkey/UTC day used | Wait until next UTC day; rotating hotkeys does not reset |
37
37
|`400 missing_lium_api_key`| Live path needs miner-funded Lium | Pass `X-Lium-Api-Key` (your Lium account); see [`prism.md`](prism.md)|
38
-
|`409 not_failed` on `/retry`| Row is not `failed` (queued/running/scored) |`/retry` is only for failed rows. Identical ZIP re-POST → `already-queued` (no-op). After infra failure use `/retry`+ `X-Lium-Api-Key`|
38
+
|`409 not_failed` on `/retry`| Row is not `failed` (queued/running/scored) |`/retry` is only for failed rows. In-flight identical ZIP re-POST → `already-queued`. Failed infra: `/retry`or same-ZIP POST recovers the row|
39
39
|`400 missing_lium_api_key` on `/retry`| Failed infra row needs another GPU rent | Send `X-Lium-Api-Key` (hotkey / Bearer alone is not enough) |
0 commit comments