openclaw - 💡(How to fix) Fix Windows] ESM loader crashes with absolute paths (c: protocol) — Telegram & memory_search broken [1 comments, 2 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#72198Fetched 2026-04-27 05:33:28
View on GitHub
Comments
1
Participants
2
Timeline
6
Reactions
0
Timeline (top)
cross-referenced ×2labeled ×2closed ×1commented ×1

On Windows, OpenClaw 2026.4.24 fails to load modules that use absolute Windows paths (C:...) because Node's ESM loader requires file:// URLs. This breaks:

  • Telegram channel (enters infinite restart loop)
  • memory_search tool (fails on every call)
  • delivery-recovery (2 pending entries fail on startup)

Error: "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:'"

Secondary bug: default model anthropic/claude-haiku-3-5 returns "FailoverError: Unknown model" — gateway falls back to claude-sonnet-4-6 automatically (works but increases cost).

Error Message

Error: "Only URLs with a scheme in: file, data, and node are supported by the default ESM

Root Cause

On Windows, OpenClaw 2026.4.24 fails to load modules that use absolute Windows paths (C:...) because Node's ESM loader requires file:// URLs. This breaks:

  • Telegram channel (enters infinite restart loop)
  • memory_search tool (fails on every call)
  • delivery-recovery (2 pending entries fail on startup)

Code Example

[telegram] [default] channel exited: 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:'
[telegram] [default] auto-restart attempt 1/10 in 5s
... (repeats until attempt 10)
RAW_BUFFERClick to expand / collapse

Bug type

Crash (process/app exits or hangs)

Beta release blocker

No

Summary

On Windows, OpenClaw 2026.4.24 fails to load modules that use absolute Windows paths (C:...) because Node's ESM loader requires file:// URLs. This breaks:

  • Telegram channel (enters infinite restart loop)
  • memory_search tool (fails on every call)
  • delivery-recovery (2 pending entries fail on startup)

Error: "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:'"

Secondary bug: default model anthropic/claude-haiku-3-5 returns "FailoverError: Unknown model" — gateway falls back to claude-sonnet-4-6 automatically (works but increases cost).

Steps to reproduce

  1. Install OpenClaw on Windows with workspace at C:... path
  2. Configure Telegram channel
  3. Run: openclaw gateway run
  4. Telegram channel crashes immediately and retries indefinitely
  5. Any memory_search tool call returns the c: protocol erroren bucle de reinicios indefinido, memory_search falla completamente

Expected behavior

Absolute Windows paths should be normalized to file:// URLs before being passed to the ESM loader. Telegram should connect normally. memory_search should work.

Actual behavior

  • OS: Windows 10 (10.0.26200 x64)
  • OpenClaw version: 2026.4.24 (cbcfdf6)
  • Node.js: v24.14.0
  • Workspace path: C:\home\sares.openclaw\workspace
  • Shell: PowerShell

OpenClaw version

026.4.24

Operating system

Windows 11

Install method

No response

Model

anthropic

Provider / routing chain

OpenClaw Gateway 2026.4.24 → Anthropic API (claude-sonnet-4-6 fallback from claude-haiku-3-5)

Additional provider/model setup details

No response

Logs, screenshots, and evidence

[telegram] [default] channel exited: 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:'
[telegram] [default] auto-restart attempt 1/10 in 5s
... (repeats until attempt 10)

Impact and severity

No response

Additional information

No response

extent analysis

TL;DR

The issue can be fixed by normalizing absolute Windows paths to file:// URLs before passing them to the ESM loader.

Guidance

  • Verify that the issue is caused by the ESM loader not supporting absolute Windows paths by checking the error message for "Only URLs with a scheme in: file, data, and node are supported".
  • Update the code to convert absolute Windows paths to file:// URLs, for example, by using the path module in Node.js to convert C:\path\to\file to file://C:/path/to/file.
  • Check the OpenClaw documentation for any existing solutions or workarounds for this issue.
  • Test the fix by running the openclaw gateway run command and verifying that the Telegram channel connects normally and the memory_search tool works as expected.

Example

const path = require('path');
const filePath = 'C:\\\\path\\\\to\\\\file';
const fileUrl = `file://${path.resolve(filePath).replace(/\\/g, '/')}`;
console.log(fileUrl); // Output: file://C:/path/to/file

Notes

The provided fix assumes that the issue is caused by the ESM loader not supporting absolute Windows paths. If the issue is caused by something else, additional debugging may be required.

Recommendation

Apply workaround: The issue can be fixed by normalizing absolute Windows paths to file:// URLs, and this workaround should be applied until a permanent fix is available.

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

Absolute Windows paths should be normalized to file:// URLs before being passed to the ESM loader. Telegram should connect normally. memory_search should work.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING