Blog · Analysis
DeepSeek Harness Community Bug Report
August 14, 2026 · dshbase
The DeepSeek Harness (dsh) community has filed 321 bug and problem discussions in the official repository since launch. We read through all of them and pulled the full details of the most representative threads. The result is a clear picture of what actually breaks in practice — and where dshbase can help. Here is the full bug landscape, grouped into eight themes.
1. Windows platform & paths — the single biggest cluster
More than a third of the reported bugs are Windows-specific, and the headline issue is path handling. The native folder picker reads the returned UTF-16 path incorrectly, silently truncating it at any Chinese character whose low byte is 0x00 (开 / 一 / 言 / 上 / 下 / 耀…). The directory exists, but workspace creation reports ENOENT.
- #953 — Windows native folder dialog truncates paths at U+XX00 hanzi (开/一/上/下…) — the UTF-16 terminator check only looks at the low byte
- #151 / #210 — the same truncation at 言 (U+8A00) / 耀 (U+8000) →
workspace-invalid-path/ ENOENT - #1420 —
dsh plugin addwith a path containing spaces is split into two arguments on Windows (shell: truejoins args unescaped) - #1268 — choosing a drive root (C:\ / D:\) as the workspace fails to create sessions (
fs.mkdirEPERM) - #997 / #986 — the Windows sandbox shell cannot establish any TLS/HTTPS connection (SEC_E_NO_CREDENTIALS)
dshbase take: these are upstream bugs, not config mistakes. For the shell gaps in the meantime, dsh-bash-terminal (in the plugin directory) gives Windows users a unified PowerShell / Git Bash / WSL shell tool with a real PTY. For everything else, watch the troubleshooting page — we keep the workarounds updated as upstream ships fixes.
2. Install & boot
A fresh install is the first thing a new user does, and it is where dsh fails most visibly. The root cause is usually a native dependency (node-pty, sharp) or a cordis package that is not published, so the install "succeeds" and dsh crashes on first run.
- #1219 — npm global install, then
dsh webfails: node-pty native modulepty.nodemissing (Linux) - #55 —
pnpm add -g, then dsh cannot start: cannot find@deepseek-ai/cordis-plugin-timer - #223 — cordis declares circular peer dependencies; strict resolvers (mise/aube) refuse to install
- #113 — macOS arm64:
--expose-internals is required for HMR service(the npx/bunx entry fails) - #535 / #1032 —
npx @deepseek-ai/dsh webcrashes on a clean machine (sharp / node-pty / cordis-plugin-group)
Most of these have a one-line workaround, and we have collected every one of them — ERR_REQUIRE_ESM, missing native modules, allowBuilds prompts, port 3080 already in use — on the troubleshooting page.
3. Web UI & frontend
The Web UI is the primary surface, and it has two recurring failure classes: loopback / Origin trust checks that return 403, and long-thinking sessions that freeze the page.
- #910 / #894 / #654 — every
/apicall returns 403 overhttp://127.0.0.1:3080(Chrome omits the port from the Origin header);localhostworks - #980 / #514 —
crypto.randomUUID is not a functionover plain-HTTP LAN/VPN access (a secure-context-only API) - #1417 / #629 — the composer cannot handle Chinese IME pre-edit text (the
color: transparenttextarea mirror layer) - #317 / #370 — very long thinking output freezes the page, then history fails to load (
Maximum call stack size exceeded) - #682 / #1316 — endless failed tool-call loops / high-output background sessions stall the browser
If the UI feels broken, the fastest fixes are the same ones we document: use localhost:3080 instead of 127.0.0.1, and compact long sessions early. Both are on the troubleshooting page.
4. Sessions & history
The lossless session log is dsh's greatest strength — and its weakest link when it corrupts. A duplicated seq number or a truncated block makes the whole session fail to load, and the UI gives almost no hint why.
- #1333 — duplicated
seqnumbers cause "conversation failed to load" - #1244 — hitting the max output length permanently corrupts the session (every later turn fails with "invalid pi-ai replay state")
- #548 / #1047 — history unavailable / a single corrupt log takes down the whole session sidebar
- #1005 — session resume fails ("agent-presets: refusing to compose…")
- #40 — archived sessions cannot be viewed or restored
Community plugins fill the gaps here: dsh-turn-rewind restores conversation and workspace state from a change ledger, and the memory plugins (dsh-memory, dsh-mnemon) build on the session log without mutating it. All are in the plugin directory.
5. Models & API integration
DeepSeek's own models are first-class; third-party and gateway setups are where people hit walls. The recurring theme is reasoning_content and vision modality not surviving the round-trip.
- #906 / #739 / #231 — thinking mode fails: "The
reasoning_contentin the thinking mode must be passed back to the API" (INVALID_REQUEST / 400) - #636 / #122 — reasoning intensity is not selectable for third-party models
- #1029 / #112 — vision-capable third-party models (gpt-5.4, kimi, o1/o3/o4, grok) cannot upload images
- #892 — 429 rate limiting does not auto-recover when
Retry-Afterexceeds the default 10smaxDelay - #408 —
web_searchhardcodes the official endpoint, so self-hosted gateway users always fail auth
For text-only models that cannot "see", dshbase recommends the vision bridge plugins — modlens (OCR/layout JSON) and dsh-vision-toolkit (image Q&A, long-screenshot OCR) — plus dsh-drop-to-path to keep drag-and-drop without copying. Model credential errors (MISSING_CREDENTIAL, UNKNOWN_MODEL, 401 on "get models") are all on the troubleshooting page.
6. Plugin system
Plugins are dsh's biggest differentiator, but the install path is still fragile: a bad plugin can stop the whole Web UI from booting, and installs can report success while silently doing nothing.
- #1106 — "Failed to load plugins" on web boot; a pending plugin entry blocks startup with no rollback
- #1377 — plugin install reports success but silently disables an unresolved profile bundle
- #1140 — absolute-path plugins cannot load on Windows (this blocks the official tools tutorial)
- #297 / #840 — installing a broken plugin (e.g. an invalid function schema) takes the whole harness down
That is exactly why every entry in the plugin directory shows a verified test status — install-fail and load-fail are flagged before you run the command. For the "won't boot after a bad plugin" case, the troubleshooting page covers the load errors (ERR_REQUIRE_ESM, missing bundle manifest, allowBuilds).
7. Subagents & multi-agent
Subagents are where dsh's multi-agent story shows its rough edges: they fail silently in the background, cannot always switch models, and leave zombie entries in the UI.
- #1136 — subagents (subagent / subagent_fork) all silent-fail when running in the background (auth state not inherited)
- #1100 / #1105 — subagents cannot switch models; the workflow's
modeloverride is clobbered by the parent agent's model - #1202 / #476 — failed subagents stay visible in the UI as if still running, with no way to clear them
- #1259 — the main agent never receives the background result after a subagent finishes
For teams leaning on multi-agent workflows, dsh_workflow and DSH-better-sidebar (both in the directory) add a governable workflow layer and a sub-agent workbench on top of the raw subagent primitives.
8. Permissions, sandbox & security
The last cluster is the sharpest: the permission / sandbox model has several reported gaps where the boundary is weaker than advertised.
- #201 / #1201 / #1141 — "sandbox escalation to workspace-write is not strictly wider than danger-full-access" spam, even when the session is already full-access
- #250 — a sandboxed model can self-approve
danger-full-accessthrough the Web approval loopback channel - #962 — credentials are not a confidentiality boundary against the agent: API keys can be read and exfiltrated
- #951 — glob/grep tools bypass the sandbox entirely (no policy constraint on the
pathargument)
These are security-relevant and mostly need upstream fixes. In the meantime, if you want finer control over what the agent can actually do, dsh-tool-approval gives you per-step manual approval instead of the coarse presets — see the directory and the troubleshooting page.
321 bug reports is a lot, but it is also the sign of an active, fast-moving project — most of the top issues already have a root-cause analysis and a proposed patch attached by the community. The common thread: dsh's biggest gaps right now are Windows path handling, install robustness, and session-log resilience. dshbase tracks all of them, and we will keep the workarounds and plugin alternatives updated as upstream lands fixes. Questions? Ask in the official community.