Repository navigation
rmdirsync doesn't throw error when symlinked path is passed as argument in windows node 12 #31231
Description
Activity
I think the bahavior in Node.js v12.x is correct. It should not throw an error. The error you see in v10.x was a bug (or a feature), which was fixed in #23724. Function
fs.symlinkSyncrequired third parameter, which can be either'file'or'dir'(default was'file'), sofs.rmdirSyncfails because the symlink points to an inaccessible file.@Hakerh400
fs.rmdirSyncis failing in node 10 not in node 12. So is it expected not to do anything and silently return in node 12?One more question is why the behavior is different in the different platforms?
Linux: Throws error
Mac: Throws Error
Windows: Doesn't throw an error.Please have look at the below terminal output from Linux CI.
$ node --version v12.14.0 $ npm --version 6.13.4 $ nvm --version 0.35.2 install.npm 0.57s$ npm install 0.20s$ npm test > node-symlink@1.0.0 test /home/travis/build/SparshithNR/node-symlink > node index.js fs.existSync(tmp/out) : true internal/fs/utils.js:220 throw err; ^ Error: ENOTDIR: not a directory, rmdir 'tmp/out' at Object.rmdirSync (fs.js:752:3) at Object.<anonymous> (/home/travis/build/SparshithNR/node-symlink/index.js:6:4) at Module._compile (internal/modules/cjs/loader.js:959:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:995:10) at Module.load (internal/modules/cjs/loader.js:815:32) at Function.Module._load (internal/modules/cjs/loader.js:727:14) at Function.Module.runMain (internal/modules/cjs/loader.js:1047:10) at internal/main/run_main_module.js:17:11 { errno: -20, syscall: 'rmdir', code: 'ENOTDIR', path: 'tmp/out' }
https://travis-ci.com/SparshithNR/node-symlink/jobs/272882479
fs.rmdirSyncthrowing error in node 12 Linux and not in node 12 windows forces us to code with a branching.- addedfsIssues and PRs related to file-system APIs and the fs module.Issues and PRs related to file-system APIs and the fs module.
on Dec 26, 2020 github-actions commented
on Jun 27, 2026 on Jun 27, 2026 – with GitHub ActionsContributorMore actionsThis issue has been marked as stale due to 210 days of inactivity.
It will be automatically closed in 30 days if no further activity occurs. If this is still relevant, please leave a comment or update it to keep it open.github-actions commented
on Jul 28, 2026 on Jul 28, 2026 – with GitHub ActionsContributorMore actionsThis issue has been automatically closed after 30 days of inactivity following its stale status (no activity for a total of 120 days).
If this is still relevant, feel free to reopen it or leave a comment with additional details so we can continue the discussion.
I have written a simple code to pin down the issue.
Env: Windows
Node version: 12
Execution in CI:
Node 12
Node 10:
Code can be found here: https://github.com/SparshithNR/node-symlink/tree/rmdirsync
Windows Execution: https://ci.appveyor.com/project/SparshithNR/node-symlink/builds/29933274
Linux Execution: https://github.com/SparshithNR/node-symlink/runs/376483962