Repository navigation
url.pathToFileURL doesn't generate valid URLs for UNC paths #34736
Description
Activity
This sounds like a valid bug to me. The implementation is at https://github.com/nodejs/node/blob/master/lib/internal/url.js#L1368 where it seems clear this isn't properly being taken into account.
Reacted by James M Snell and Matthew McEachen- addedconfirmed-bugIssues and PRs for confirmed bugs.Issues and PRs for confirmed bugs.good first issueIssues that are suitable for first-time contributors.Issues that are suitable for first-time contributors.
on Aug 11, 2020 - addedurlIssues and PRs related to the legacy built-in url module.Issues and PRs related to the legacy built-in url module.whatwg-urlIssues and PRs related to the WHATWG URL implementation.Issues and PRs related to the WHATWG URL implementation.
on Aug 11, 2020 I'd be happy to swing at it, I haven't committed to node yet.
That would be really great, please feel free if you can. I believe that on posix machines such a path should be ignored, like for other path functions I believe. Building for Windows is documented at https://github.com/nodejs/node/blob/master/BUILDING.md#windows.
Reacted by Matthew McEachen(interestingly enough,
fileURLToPathalready behaves correctly)Do you want
pathToFileURLto throw a new error code for invalid UNC paths (for example, when the path is missing like\\invalid?)Shouldn't need a new error code. Using one like
ERR_INVALID_ARG_VALUEshould work for that.Reacted by Matthew McEachenI'm not sure what would be best - I don't think we currently do path validations, but if there is no adequate URL representation that would support
fileURLToPathas its converse it likely makes sense to.- added a commit that references this issue
on Aug 17, 2020 - added a commit that references this issue
on Aug 20, 2020 - added a commit that references this issue
on May 22, 2026
Node.js version: v12.18.3 and v14.8.0
Platform: Windows 10 (10.0.19041)
Subsystem:
urlWhat steps will reproduce the bug?
Expected behavior
As per Microsoft's UNC URI documentation):
file://laptop/My%20Documents/FileSchemeURIs.docActual behavior
hostnameshould belaptop(not'').pathnameshould be/My%20Documents/FileSchemeURIs.doc(not be prefixed by/laptop/).