Repository navigation
Replies: 2 comments
|
Follow-up: the blocking handle was identified (it is not one of DSH's own processes) Re-ran the install with logging of the actual handle owners ( That is VS Code ( So the failure is not specific to DSH's own helper processes: any open handle anywhere under The request stands, and this makes it a bit broader:
Workaround for anyone hitting this: close any editor/terminal/explorer window that has a folder inside the install tree open, stop all processes rooted in the install folder, then run |
|
Root cause is the spawn order — this failure is deterministic, not a retry-window issue Confirming #13214 from a different angle. The handle analysis above is correct, but there is a layer above it that makes the failure unconditional: the installer is spawned before the app quits, so the rename always begins at the one instant where the folder is guaranteed to be busy. 1.
|
Uh oh!
There was an error while loading. Please reload this page.
Summary
On Windows 11 (10.0.26300), "Install and Restart" in DeepSeek Harness Desktop fails every time:
The installer stages the new build next to the app and then renames the current install folder aside (
DeepSeek Harness->DeepSeek Harness.old-{GUID}). On Windows that rename returnsERROR_ACCESS_DENIED(5) as long as any process still has a file open inside the folder. The installer is spawned detached by the running app, so the backup step races the app's own shutdown: it fails, retries ten times, rolls back, and relaunches the old version.The lock does not come only from
DeepSeek Harness.exe. Helper processes whose image lives inside the install folder (bundlednode.exeunderresources\runtime\..., console hosts) keep the folder locked after the visible app window is gone.Steps to reproduce
%LOCALAPPDATA%\Programs\DeepSeek Harness).Actual / Expected
Actual: the update can never install, the failure surfaces as a generic dialog, and the pending installer stays in the updater cache, so the cycle repeats on the next click.
Expected: the installer should wait until the previous version has fully exited before renaming the folder (or retry for longer / move items individually), and report a clear, actionable error instead of silently rolling back.
Evidence
%LOCALAPPDATA%\@deepseek-aidsh-desktop-updater\installer-logs\directory-failure-*.log- the identical error 5 on 11/5, 11/6, 11/7 (x3), 11/10 (x2), 11/13 (x2).MoveFileExW(dir -> dir.old)returns 5 when any file inside the folder is open, 32 when only a process working directory is inside it, and 0 when the folder is free.DeepSeek Harness.exeis not enough - the folder stayed locked for minutes. Once every process rooted in the folder was terminated, the rename succeeded on the first try (0 s) and the install completed: 0.2.1-rc.5 -> 0.2.2-rc.1.Workaround
With the app fully closed, stop every process rooted in the install folder, then run the already-downloaded installer from a neutral working directory:
Environment
nightly, providergeneric(app-update.yml)%LOCALAPPDATA%\Programs\DeepSeek Harness)deepseek-harness-0.2.2-rc.3-win-x64.exe(sha512 matches update info, signature valid)Related
Independent report of the same root cause (third-party plugin repo): OrderG-X/dsh-chrome-bridge#3
Filed as a discussion because the issue tracker is disabled on this repository.
All reactions