Symptom
Running DeepSeek Harness (dsh) against an opencode / opencode-go model fails on every request:
400: {"type":"MissingSessionID","message":"Error from provider (Console Go): Request is missing x-opencode-session and cannot be routed efficiently. Please see https://opencode.ai/docs/go/#where-can-i-use-it"}
Cause
The Console Go gateway routes a request to the node holding its conversation's cache, and it reads the conversation id from the x-opencode-session header. The pi coding agent sends that header from its provider-attribution layer, but @earendil-works/pi-ai — the shared library dsh uses for these routes — does not implement it yet. That is why the same key and model work in pi and fail in dsh.
Fix
Install the plugin from this repository and restart the dsh process that serves your UI:
dsh plugin --profile web add github:BrackRat/dsh-opencode-session
It injects x-opencode-session (the live session id) and x-opencode-client: dsh on opencode / opencode-go routes only, without patching any installed files; explicitly configured headers still win.
Still failing?
Comment here with:
dsh --version
- the provider / model id you used
- the exact error text
so we can tell whether a newer dsh or pi-ai build changed the internals the plugin hooks.
Symptom
Running DeepSeek Harness (
dsh) against an opencode / opencode-go model fails on every request:Cause
The Console Go gateway routes a request to the node holding its conversation's cache, and it reads the conversation id from the
x-opencode-sessionheader. The pi coding agent sends that header from its provider-attribution layer, but@earendil-works/pi-ai— the shared library dsh uses for these routes — does not implement it yet. That is why the same key and model work in pi and fail in dsh.Fix
Install the plugin from this repository and restart the dsh process that serves your UI:
It injects
x-opencode-session(the live session id) andx-opencode-client: dshonopencode/opencode-goroutes only, without patching any installed files; explicitly configured headers still win.Still failing?
Comment here with:
dsh --versionso we can tell whether a newer dsh or pi-ai build changed the internals the plugin hooks.