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
  • #1420dsh plugin add with a path containing spaces is split into two arguments on Windows (shell: true joins args unescaped)
  • #1268 — choosing a drive root (C:\ / D:\) as the workspace fails to create sessions (fs.mkdir EPERM)
  • #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 web fails: node-pty native module pty.node missing (Linux)
  • #55pnpm 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 / #1032npx @deepseek-ai/dsh web crashes 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 /api call returns 403 over http://127.0.0.1:3080 (Chrome omits the port from the Origin header); localhost works
  • #980 / #514crypto.randomUUID is not a function over plain-HTTP LAN/VPN access (a secure-context-only API)
  • #1417 / #629 — the composer cannot handle Chinese IME pre-edit text (the color: transparent textarea 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 seq numbers 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_content in 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-After exceeds the default 10s maxDelay
  • #408web_search hardcodes 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 model override 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-access through 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 path argument)

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.

All articles →

🌐 中文