scheduler-deliver-telegram-thread-not-found
Done. The self-contained solution is at ~/SOLUTION.md, with a runnable fixture at ~/fix-telegram-thread/.
telegram:-1003310984808:12345 decodes to chat -1003310984808 (forum supergroup) + message_thread_id 12345 — a placeholder topic that never existed or was deleted. Telegram's Bot API returns HTTP 400 Bad Request: message thread not found, which is a permanent configuration error, not a transient one. GAP-013/014 misclassified it as transient ("12/15 ok"), letting 3 straight failures accumulate; canary #7 is correct — the probe works, the target is dead.
curl probe.message_thread_id from getUpdates; (B) if the topic was deleted and should exist, createForumTopic returns the new id; (C) parse the known topic link. Explicit warning: never reuse 12345 — Telegram doesn't re-use deleted thread ids.fleet.toml edit (the exact sed is given): telegram:-1003310984808:12345 → telegram:-1003310984808:61234, commit with guards (old id gone, new id unique across ~25 sibling repos, TOML still parses).message thread not found to permanent/config-error handling so the next dead target escalates after 1 consecutive fail, not 3.12345), ran the included verify.sh: before-state pinpoints 12345 as unique to my-project; after applying the exact sed, all 26 fleet.toml parse via Python tomllib, the new id is unique, and the diff is exactly one line.[fail,fail,fail] → FAIL (pre), [fail,fail,ok] → OK (post) — one green run clears the 2-consecutive threshold.deliver_probe.sh) is a runbook in §3.2 since this sandbox has no bot token/network; exit criteria: probe to new id returns {"ok":true,...}, deliver leg OK, canary #7 green.# Evidence - Problem class: scheduler-deliver-telegram-thread-not-found - Model: openrouter/deepseek/deepseek-v4-flash-0731 - Solved: 2026-08-22T05:12:12.915Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "my-project smoke repo deliver leg: 3 consecutive Message-thread-not-found failures (08-21 05:27/11:35/17:48) for telegram:-1003310984808:12345. Diagnosis: thread id 12345 is unique in fleet.toml (only my-project uses it; ~25 sibling projects use distinct high-numbered forum topic ids) and looks like a placeholder topic that never existed or was deleted. GAP-013/014 treated it as transient (12/15 ok); accept-and-document is exhausted at 3 straight fails. Fix: verify the real forum topic id for the project report leg and update fleet.toml deliver target. Canary check #7 (deliver health) correctly FAILs on 2+ consecutive \u2014 probe works, target is dead.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4-flash-0731", "problem_class": "scheduler-deliver-telegram-thread-not-found", "provider": "openrouter", "solved_at": "2026-08-22T05:12:12.915Z", "version": ""}Done. The self-contained solution is at ~/SOLUTION.md, with a runnable fixture at ~/fix-telegram-thread/.
telegram:-1003310984808:12345 decodes to chat -1003310984808 (forum supergroup) + message_thread_id 12345 — a placeholder topic that never existed or was deleted. Telegram's Bot API returns HTTP 400 Bad Request: message thread not found, which is a permanent configuration error, not a transient one. GAP-013/014 misclassified it as transient ("12/15 ok"), letting 3 straight failures accumulate; canary #7 is correct — the probe works, the target is dead.
curl probe.message_thread_id from getUpdates; (B) if the topic was deleted and should exist, createForumTopic returns the new id; (C) parse the known topic link. Explicit warning: never reuse 12345 — Telegram doesn't re-use deleted thread ids.fleet.toml edit (the exact sed is given): telegram:-1003310984808:12345 → telegram:-1003310984808:61234, commit with guards (old id gone, new id unique across ~25 sibling repos, TOML still parses).message thread not found to permanent/config-error handling so the next dead target escalates after 1 consecutive fail, not 3.12345), ran the included verify.sh: before-state pinpoints 12345 as unique to my-project; after applying the exact sed, all 26 fleet.toml parse via Python tomllib, the new id is unique, and the diff is exactly one line.[fail,fail,fail] → FAIL (pre), [fail,fail,ok] → OK (post) — one green run clears the 2-consecutive threshold.deliver_probe.sh) is a runbook in §3.2 since this sandbox has no bot token/network; exit criteria: probe to new id returns {"ok":true,...}, deliver leg OK, canary #7 green.# Evidence - Problem class: scheduler-deliver-telegram-thread-not-found - Model: openrouter/deepseek/deepseek-v4-flash-0731 - Solved: 2026-08-22T05:12:12.915Z - Verification: solution produced by pi in sandbox; see signatures.json
{"description": "my-project smoke repo deliver leg: 3 consecutive Message-thread-not-found failures (08-21 05:27/11:35/17:48) for telegram:-1003310984808:12345. Diagnosis: thread id 12345 is unique in fleet.toml (only my-project uses it; ~25 sibling projects use distinct high-numbered forum topic ids) and looks like a placeholder topic that never existed or was deleted. GAP-013/014 treated it as transient (12/15 ok); accept-and-document is exhausted at 3 straight fails. Fix: verify the real forum topic id for the project report leg and update fleet.toml deliver target. Canary check #7 (deliver health) correctly FAILs on 2+ consecutive \u2014 probe works, target is dead.", "environment": "", "language": "", "model": "openrouter/deepseek/deepseek-v4-flash-0731", "problem_class": "scheduler-deliver-telegram-thread-not-found", "provider": "openrouter", "solved_at": "2026-08-22T05:12:12.915Z", "version": ""}