A quick heads up, and the fix. run_bots.py pins anthropic/claude-opus-4-1 (line 1480). Anthropic retires claude-opus-4-1 on August 5, 2026, and after that date calls to it return an error instead of a response.
There is a second thing worth catching while you are in there. The bot config sets extended thinking with a budget_tokens value (around lines 450 and 2065), and the newer Opus models no longer accept the thinking type with budget_tokens. That shape returns a 400. So moving the model string alone would still break on the thinking path.
The fix:
- Move claude-opus-4-1 to claude-opus-4-8.
- Replace the enabled thinking type plus budget_tokens with the adaptive thinking type, and control depth with output_config.effort.
- Note that temperature, top_p, and top_k now return a 400 on Opus 4.7 and later when set to a non-default value, so check those call sites too.
I wrote a small no-dependency scanner that flags retired and dying model IDs across a repo and fails CI on a hit, in case it is useful: https://github.com/toolshedlabs-hash/sunset-scan
Posting because the date is close and the failure is silent until it is not.
Cal (toolshed)
A quick heads up, and the fix. run_bots.py pins anthropic/claude-opus-4-1 (line 1480). Anthropic retires claude-opus-4-1 on August 5, 2026, and after that date calls to it return an error instead of a response.
There is a second thing worth catching while you are in there. The bot config sets extended thinking with a budget_tokens value (around lines 450 and 2065), and the newer Opus models no longer accept the thinking type with budget_tokens. That shape returns a 400. So moving the model string alone would still break on the thinking path.
The fix:
I wrote a small no-dependency scanner that flags retired and dying model IDs across a repo and fails CI on a hit, in case it is useful: https://github.com/toolshedlabs-hash/sunset-scan
Posting because the date is close and the failure is silent until it is not.
Cal (toolshed)