Repository navigation
Description
[Info - 9:07:13 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:07:13 PM] Connection to server got closed. Server will restart.
true
[Info - 9:07:13 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:07:14 PM] Connection to server got closed. Server will restart.
true
[Info - 9:07:14 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:07:14 PM] Connection to server got closed. Server will restart.
true
[Info - 9:07:14 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:07:14 PM] Connection to server got closed. Server will restart.
true
[Info - 9:07:14 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Error - 9:07:14 PM] The ReScript Language Server server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.
[Info - 9:11:19 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:11:19 PM] Connection to server got closed. Server will restart.
true
[Info - 9:11:19 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:11:19 PM] Connection to server got closed. Server will restart.
true
[Info - 9:11:19 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:11:19 PM] Connection to server got closed. Server will restart.
true
[Info - 9:11:19 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Info - 9:11:19 PM] Connection to server got closed. Server will restart.
true
[Info - 9:11:19 PM] Received initialize request from client.
node:internal/modules/esm/load:188
throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, schemes);
^
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, node, and electron are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:188:11)
at defaultLoad (node:internal/modules/esm/load:82:3)
at ModuleLoader.load (node:internal/modules/esm/loader:815:12)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:594:31)
at #createModuleJob (node:internal/modules/esm/loader:624:36)
at #getJobFromResolveResult (node:internal/modules/esm/loader:343:34)
at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:311:41)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:664:25) {
code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME'
}
Node.js v22.21.1
[Error - 9:11:19 PM] The ReScript Language Server server crashed 5 times in the last 3 minutes. The server will not be restarted. See the output for more information.
Activity
nojaf commentedon Mar 3, 2026
Are you on Windows?
Did you try out the prerelease version?
Jakub684 commentedon Mar 3, 2026
Yes.
The pre-release version has the same issue.
I have even tried older versions and all of them experience the problem.
The interesting thing is that it only happens on a Rescript v12 project for me. Rescript v11 doesn't crash.
It also means that I am unable to even start the code analyser because of this as a result of the invalid file url scheme.
ldokduy20 commentedon May 3, 2026
This is happening to me too. The same error and stack trace like Jakub684, perhaps I think this is an issue regarding file URL scheme. A few searches tell me that Node expects the file:// suffix for ESM, but some code in either server/cli.ts or server/server.ts is calling it wrong. My project was created with
npx create-rescript-app@latestwith my package.json:and this rescript.json:
Update: built the extension from source (without --minify)
with Node v20.20.2
And I got this stack trace:
So I changed the part at line 14110 from
const { binPaths } = await import(url.fileURLToPath(targetPackagePath));into:
const { binPaths } = await import(pathToFileURL(targetPackagePath).href);And now the server doesn't crash immediately upon startup. I don't know where this specific part of code is from yet. But changing it removed the crash.
But now I noticed another issue: the extension asks me if I want to "Start Build for fresh diagnostics", I clicked Yes but it didn't work.
The log:
BUT, if I build my project with
npx rescript buildin my terminal first and return to VS Code, now the extension provides on-hover docs, autocomplete just normal.When introducing new identifiers, no accurate completion docs yet:

But after running

npx rescript build, things went smooth again:So basically the server crash was fixed (on my machine), but I haven't tried editing the code in server/src/
And the extension doesn't automatically rebuild my project after each save yet. To get up-to-date completions I needed to run the build command myself.
ldokduy20 commentedon May 3, 2026
Running
npx rescript watchworks, but now the server sometimes need a restart when diagnostics are lagged behind. Quite annoying, but it works.Jakub684 commentedon May 3, 2026
So, configuring the extension (for a workspace or even folder) in VSCode to use relative pathing allows me to set where rescript should look for the relevant files.
Setting the target paths stops the crashing.
However just like you said, the extension sometimes does lag behind and requires frequent restarting to keep it up to date.
Fix crash resolving ReScript v12+ binaries