Windows: EXDEV cross-device link not permitted on same folder atomic rename #3577
Replies: 1 comment
|
The stack already tells us this is NOT a plain "tmp on another device" case — and that narrows the root cause sharply. Source facts (rc.8):
Two offline checks that pin it down: # Is any component of the path a reparse point?
dir "C:\Users\yanxzin" /AL
fsutil reparsepoint query "C:\Users\yanxzin\.dsh" 2>&1
# Which volume actually hosts the storage dir (physical, not logical)?
(Get-Item "C:\Users\yanxzin\.dsh\storages").Target
fsutil volume diskfree C: 2>&1 | Select-Object -First 3If a junction shows up, that is the answer — Windows reports the rename as cross-device even though both paths display under Product-side fix (independent of the user's setup): Happy to expand the fallback sketch into a concrete patch proposal if useful. |
Uh oh!
There was an error while loading. Please reload this page.
PS C:\Users\yanxzin> npx @deepseek-ai/dsh web
npm notice run npx
npm notice run dsh web
file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js:1187
throw new Error(
${binName}: ${stage}: ${detail}${stack}, { cause });^
Error: dsh: plugin tree failed to load: failed to apply loader entry include (cordis:include): failed to apply loader entry workspace (@deepseek-ai/dsh-workspace): EXDEV: cross-device link not permitted, rename 'C:\Users\yanxzin.dsh\storages.d3669224-c900-49f8-a758-ad593aebde15.tmp' -> 'C:\Users\yanxzin.dsh\storages\workspace.json'
Error: EXDEV: cross-device link not permitted, rename 'C:\Users\yanxzin.dsh\storages.d3669224-c900-49f8-a758-ad593aebde15.tmp' -> 'C:\Users\yanxzin.dsh\storages\workspace.json'
at async rename (node:internal/fs/promises:785:10)
at async writeAtomic (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-storage-json/lib/index.js:35:3)
at boot (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-app-boot/lib/index.js:1187:9)
at async runProfile (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/lib/profile-boot-DG5t9aNs.js:247:14)
at async file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/lib/bin.js:133:3 {
[cause]: Error: failed to apply loader entry include (cordis:include): failed to apply loader entry workspace (@deepseek-ai/dsh-workspace): EXDEV: cross-device link not permitted, rename 'C:\Users\yanxzin.dsh\storages.d3669224-c900-49f8-a758-ad593aebde15.tmp' -> 'C:\Users\yanxzin.dsh\storages\workspace.json'
at updateError (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:299:9)
at Entry._init (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:519:10) {
[cause]: Error: failed to apply loader entry workspace (@deepseek-ai/dsh-workspace): EXDEV: cross-device link not permitted, rename 'C:\Users\yanxzin.dsh\storages.d3669224-c900-49f8-a758-ad593aebde15.tmp' -> 'C:\Users\yanxzin.dsh\storages\workspace.json'
at updateError (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:299:9)
at Entry._init (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/cordis-plugin-loader/lib/index.js:519:10) {
[cause]: Error: EXDEV: cross-device link not permitted, rename 'C:\Users\yanxzin.dsh\storages.d3669224-c900-49f8-a758-ad593aebde15.tmp' -> 'C:\Users\yanxzin.dsh\storages\workspace.json'
at async rename (node:internal/fs/promises:785:10)
at async writeAtomic (file:///C:/Users/yanxzin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh/node_modules/@deepseek-ai/dsh-storage-json/lib/index.js:35:3) {
errno: -4037,
code: 'EXDEV',
syscall: 'rename',
path: 'C:\Users\yanxzin\.dsh\storages\.d3669224-c900-49f8-a758-ad593aebde15.tmp',
dest: 'C:\Users\yanxzin\.dsh\storages\workspace.json'
}
}
}
}
Node.js v24.16.0
All reactions