Repository navigation
[Bug] Desktop in-app update leaves resources\runtime empty → Host fatal on next launch (0.2.1-rc.5, no junctions involved) #11824
isnimi-xyz
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Summary
Every in-app update of the Windows desktop app leaves
<install-dir>\resources\runtimeas an empty directory. The next launch dies immediately with "DeepSeek Harness is unavailable", and the only recovery is to re-run the same-version installer from the updater cache by hand.This is the fourth field report of the same failure (#10861, #11513, #11659, #11517). What is new here: it reproduces on a machine with zero reparse points anywhere under the install directory, and no
resources\appdirectory at all. So the junction path described in #11659 cannot be the necessary condition.Environment
@deepseek-ai/dsh-desktop0.2.1-rc.2 → 0.2.1-rc.5 (nightly channel)Symptom
Dialog: "DeepSeek Harness is unavailable — The application could not start or stopped unexpectedly."
Crash report (
source: host,phase: startup):dsh-skill-officeregisters the bundled Office skills by reading eachSKILL.mdfromassetRoot. The Host supplies that root asdirname(primaryRuntime) + "/office-skills"(see thedesktop-officeplugin indsh-desktop-host/lib/index.js), i.e.resources\runtime\office-skills. There is no fallback and no preflight check, so an empty directory is a fatal startup error rather than a degraded one.Observed state
resources\runtimeexists, butGet-ChildItemreturns 0 entries.It should contain the full runtime payload:
resources\app.asar.unpackedstill contains its normaldshdirectory, and the app files themselves were replaced correctly — onlyruntimeis empty.Timeline on this install
0.2.1-rc.2— in-app update →runtimeempty → fatal.0.2.1-rc.5— in-app update →runtimeempty again → fatal.The installer payload is therefore intact; only the update path fails to deploy it. Same conclusion as #11513.
Why the junction explanation does not fit here
Enumerating the whole install tree for reparse points returns nothing:
resources\appdoes not exist. The only child ofresources\app.asar.unpackedis a regulardshdirectory.So #11659's five-line repro is a valid way to trigger the damage, but junction following is not required — something in the
--updated//Spath empties the directory on an ordinary install as well. My best guess matches #11513: the update replacesresources\runtimewhile the Host child process still holds handles inside it (notablyprimary-runtime\dependencies\node\bin\node.exe), the replace silently fails, and the failure is reported as success.Impact
ExitandRestart;Restartloops the same fatal error.Suggested fixes, in order of value
resources\runtime\office-skillsandprimary-runtime\dependencies\nodeactually exist (or re-checkruntime.json'spayloadDigest) and fail the update loudly instead of restarting into a broken install.--updatedpath re-extractresources\runtimeeven when the directory already exists. "Directory present" must not be treated as "payload present".node.exehandles to close before replacingresources\runtime.ENOENTbehind a modal that hides the log.Workaround
Quit the app completely, then run the same-version installer from the updater cache manually. It performs a full install and restores the runtime.
中文摘要
Windows 桌面版每次应用内升级后,
resources\runtime都会变成空目录,下次启动 Host 直接 fatal(读不到office-skills\office\SKILL.md),只能手动重跑同版本安装包恢复。与已有几篇报告相比,这篇补充的关键事实是:本机安装目录内没有任何 junction / 重解析点,也不存在
resources\app目录,因此 #11659 的 junction 路径不是必要条件;安装包本身是完整的(手动重装即可恢复),问题出在--updated静默升级路径上。建议升级完成后校验 runtime 载荷是否真的落地,而不是仅以"目录存在"判定成功。All reactions