openclaw - 💡(How to fix) Fix [Bug]: [Windows] ERR_UNSUPPORTED_ESM_URL_SCHEME — Discord channel and browser plugin fail to load on v2026.4.24 [2 comments, 3 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#72395Fetched 2026-04-27 05:30:32
View on GitHub
Comments
2
Participants
3
Timeline
5
Reactions
1
Timeline (top)
commented ×2labeled ×2closed ×1

On Windows, version 2026.4.24 fails to load the Discord channel plugin and browser plugin due to ERR_UNSUPPORTED_ESM_URL_SCHEME. Node's ESM loader receives raw Windows paths (C:...) instead of file:// URLs, causing both plugins to crash on startup.

Error Message

Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'

Stack trace (from gateway log):

at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:195:11) at defaultLoadSync (node:internal/modules/esm/load:142:3) at #loadAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:776:12) at #loadSync (node:internal/modules/esm/loader:796:49) at ModuleLoader.load (node:internal/modules/esm/loader:762:26) at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:504:31) ... at Object.nativeImport (file:///C:/Users/.../node_modules/jiti/lib/jiti.mjs:8:37) at jitiRequire (C:\Users...\node_modules\jiti\dist\jiti.cjs:1:149978)

Root Cause

On Windows, version 2026.4.24 fails to load the Discord channel plugin and browser plugin due to ERR_UNSUPPORTED_ESM_URL_SCHEME. Node's ESM loader receives raw Windows paths (C:...) instead of file:// URLs, causing both plugins to crash on startup.

Fix Action

Fix / Workaround

Workaround

Downgrade to 2026.4.23:

Code Example

Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'

Stack trace (from gateway log):

at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:195:11)
at defaultLoadSync (node:internal/modules/esm/load:142:3)
at #loadAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:776:12)
at #loadSync (node:internal/modules/esm/loader:796:49)
at ModuleLoader.load (node:internal/modules/esm/loader:762:26)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:504:31)
...
at Object.nativeImport (file:///C:/Users/.../node_modules/jiti/lib/jiti.mjs:8:37)
at jitiRequire (C:\Users\...\node_modules\jiti\dist\jiti.cjs:1:149978)
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

On Windows, version 2026.4.24 fails to load the Discord channel plugin and browser plugin due to ERR_UNSUPPORTED_ESM_URL_SCHEME. Node's ESM loader receives raw Windows paths (C:...) instead of file:// URLs, causing both plugins to crash on startup.

Steps to reproduce

NOT_ENOUGH_INFO

Expected behavior

cron jobs deliver to discord

Actual behavior

All cron jobs targeting Discord channels fail to deliver. Agent execution still works, the cron runs and generates output, but the Discord delivery step is dead.

OpenClaw version

2026.4.24

Operating system

Windows 10 (10.0.19045, x64)

Install method

npm global (npm install -g openclaw)

Model

ZAI GLM-5.1

Provider / routing chain

openclaw>ZAI_API_KEY

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'

Stack trace (from gateway log):

at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:195:11)
at defaultLoadSync (node:internal/modules/esm/load:142:3)
at #loadAndMaybeBlockOnLoaderThread (node:internal/modules/esm/loader:776:12)
at #loadSync (node:internal/modules/esm/loader:796:49)
at ModuleLoader.load (node:internal/modules/esm/loader:762:26)
at ModuleLoader.loadAndTranslate (node:internal/modules/esm/loader:504:31)
...
at Object.nativeImport (file:///C:/Users/.../node_modules/jiti/lib/jiti.mjs:8:37)
at jitiRequire (C:\Users\...\node_modules\jiti\dist\jiti.cjs:1:149978)

Impact and severity

All cron jobs targeting Discord channels fail to deliver. Agent execution still works, the cron runs and generates output, but the Discord delivery step is dead. Affected 4+ cron jobs (Morning Brief, Automated Backup, AI News Scanner, Wiki Lint).

Additional information

First failure observed: April 26, 2026 ~12:00 AM CDT Previous stable version 2026.4.23 (a979721) does not have this bug — Discord loads and delivers correctly Rolling back to 2026.4.23 via npm install -g [email protected] resolves the issue openclaw doctor also showed: failed to load bundled channel discord: ENOTEMPTY, Directory not empty alongside the URL scheme error Deleting ~/.openclaw/plugin-runtime-deps/ and restarting gateway does not fix the issue on v2026.4.24 The jiti library appears to be passing raw Windows paths to Node's ESM import() instead of converting to file:// URLs

Workaround

Downgrade to 2026.4.23:

npm install -g [email protected] Remove-Item -Recurse -Force "$env:USERPROFILE.openclaw\plugin-runtime-deps" openclaw gateway restart

extent analysis

TL;DR

Downgrade to version 2026.4.23 to resolve the ERR_UNSUPPORTED_ESM_URL_SCHEME error causing Discord channel plugin and browser plugin failures.

Guidance

  • The issue is caused by Node's ESM loader receiving raw Windows paths instead of file:// URLs, which can be mitigated by downgrading to a version that does not exhibit this behavior.
  • Verify the fix by checking if cron jobs targeting Discord channels can deliver successfully after downgrading.
  • To apply the workaround, run the commands: npm install -g [email protected], Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw\plugin-runtime-deps", and then restart the openclaw gateway.
  • The jiti library's handling of Windows paths may need to be updated to convert them to file:// URLs for compatibility with Node's ESM loader.

Notes

The provided workaround is specific to Windows and may not apply to other operating systems. The root cause of the issue appears to be related to the jiti library's interaction with Node's ESM loader.

Recommendation

Apply the workaround by downgrading to version 2026.4.23, as it is a known stable version that does not exhibit the ERR_UNSUPPORTED_ESM_URL_SCHEME error.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

cron jobs deliver to discord

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: [Windows] ERR_UNSUPPORTED_ESM_URL_SCHEME — Discord channel and browser plugin fail to load on v2026.4.24 [2 comments, 3 participants]