Zen muse-spark-*: tool-call continuation 400s with reasoning encrypted_content was not issued to this caller
Error
Opencode failed to send message with error: Error from provider (Console):
Upstream request failed: [invalid_request_error] reasoning encrypted_content was not issued to this caller
Model: opencode/muse-spark-1.3-contributor-free (also 1.2) via Zen / free.
Only observed with muse-spark-*, other models on same setup are fine.
Repro
- Use
opencode/muse-spark-1.3-contributor-free.
- First turn without tools succeeds.
- Any follow-up turn that replays previous assistant
reasoning items together with tool results fails with the 400 above.
- Affected in particular are subagents / council seats with reasoning variant (
xhigh) + tool calls; the plain main session without tool continuation keeps working.
Root cause (suspected)
muse-spark-* on opencode-zen (and opencode-go) goes through the OpenAI Responses lane with includeEncryptedReasoning: true by default, so every tool-call continuation replays reasoning.encrypted_content that the gateway cannot round-trip (bound to the gateway caller) -> upstream 400.
Reference with exact same error text and a client-side fix in a different client layer: oh-my-pi issue #11928, fixed in 18.1.19 via deployment contract include-encrypted-reasoning #false + filter-reasoning-history #true (opencode-zen.kdl). Plain OpenCode has no equivalent user-facing option (provider.<id>.models.<id>.options documents only baseURL/apiKey/headers/provider.*/limit; no reasoning include/filter key), so users cannot work around it locally except by removing the model.
Expected
For Zen muse-spark-* SKUs OpenCode should either not request reasoning.encrypted_content or strip native reasoning items on history replay (same as the referenced fix), so tool-call continuations work.
Workaround used
Remove opencode/muse-spark-* from fallback chains / switch preset; fresh sessions only help until the first tool-call turn.
Zen
muse-spark-*: tool-call continuation 400s withreasoning encrypted_content was not issued to this callerError
Model:
opencode/muse-spark-1.3-contributor-free(also1.2) via Zen /free.Only observed with
muse-spark-*, other models on same setup are fine.Repro
opencode/muse-spark-1.3-contributor-free.reasoningitems together with tool results fails with the 400 above.xhigh) + tool calls; the plain main session without tool continuation keeps working.Root cause (suspected)
muse-spark-*onopencode-zen(andopencode-go) goes through the OpenAI Responses lane withincludeEncryptedReasoning: trueby default, so every tool-call continuation replaysreasoning.encrypted_contentthat the gateway cannot round-trip (bound to the gateway caller) -> upstream 400.Reference with exact same error text and a client-side fix in a different client layer: oh-my-pi issue #11928, fixed in 18.1.19 via deployment contract
include-encrypted-reasoning #false+filter-reasoning-history #true(opencode-zen.kdl). Plain OpenCode has no equivalent user-facing option (provider.<id>.models.<id>.optionsdocuments onlybaseURL/apiKey/headers/provider.*/limit; no reasoning include/filter key), so users cannot work around it locally except by removing the model.Expected
For Zen
muse-spark-*SKUs OpenCode should either not requestreasoning.encrypted_contentor strip native reasoning items on history replay (same as the referenced fix), so tool-call continuations work.Workaround used
Remove
opencode/muse-spark-*from fallback chains / switch preset; fresh sessions only help until the first tool-call turn.