openclaw - 💡(How to fix) Fix [Bug]: lossless-claw doctor warning persists referencing extensions/lossless-claw after that path is removed [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#80087Fetched 2026-05-11 03:18:52
View on GitHub
Comments
2
Participants
3
Timeline
8
Reactions
2
Timeline (top)
referenced ×5commented ×2closed ×1

openclaw doctor emits a WARN that references ~/.openclaw/extensions/lossless-claw/ (with the explicit path in the warning text) even when that directory does not exist. The actually-loaded plugin is @martian-engineering/lossless-claw v0.9.4 from the npm path; it works correctly.

Error Message

openclaw doctor emits a WARN that references ~/.openclaw/extensions/lossless-claw/ (with the explicit path in the warning text) even when that directory does not exist. The actually-loaded plugin is @martian-engineering/lossless-claw v0.9.4 from the npm path; it works correctly.

  • WARN lossless-claw: installed plugin package requires compiled Doctor emits the WARN above on every run. The warning text contains an absolute path to a directory that does not exist. The text suggests doctor is looking for a dist/ build output in a location it expects but cannot find — but the relevant plugin is loaded fine from a different location entirely.
  • WARN lossless-claw: installed plugin package requires compiled
  • Consequence: pollutes diagnostic output (every doctor run carries a noise WARN), breaks jq parsing for openclaw config get plugins.entries.lossless-claw --json because the warning is prepended before JSON, and is misleading when triaging unrelated lossless-claw issues. In one notable case on this fleet, a similar always-on warning contributed to an agent making an erroneous "let me fix this" decision that resulted in a 5h 45m gateway outage. The cosmetic warning was not the cause but raised the noise floor.

Root Cause

  • Affected: anyone with the same dual-source history (had a local extensions/lossless-claw/ source copy, later removed in favor of the npm package).
  • Severity: cosmetic only (loaded plugin works fine).
  • Frequency: every openclaw doctor invocation.
  • Consequence: pollutes diagnostic output (every doctor run carries a noise WARN), breaks jq parsing for openclaw config get plugins.entries.lossless-claw --json because the warning is prepended before JSON, and is misleading when triaging unrelated lossless-claw issues. In one notable case on this fleet, a similar always-on warning contributed to an agent making an erroneous "let me fix this" decision that resulted in a 5h 45m gateway outage. The cosmetic warning was not the cause but raised the noise floor.

Fix Action

Fixed

  • Closed with commit: d160f8271978f1b7ddfb6728254f6b585bdc319a

Code Example

# Verify the npm-loaded copy is loaded and working
$ openclaw plugins list --json | jq -r '.[] | select(.name|test("lossless-claw")) | "\(.name) \(.version) \(.status)"'
@martian-engineering/lossless-claw 0.9.4 loaded

# Verify the extensions directory is empty
$ ls -la ~/.openclaw/extensions/
total 8
drwxrwxr-x  2 ubuntu ubuntu 4096 May  9 04:36 .
drwx------ 30 ubuntu ubuntu 4096 May  9 04:43 ..

# Run doctor — warning still references the non-existent extensions path
$ openclaw doctor 2>&1 | grep -A2 "lossless-claw"
- WARN lossless-claw: installed plugin package requires compiled
   runtime output for TypeScript entry index.ts: expected ./dist/index.js,
   ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs
   (/home/ubuntu/.openclaw/extensions/lossless-claw)

---

$ openclaw doctor 2>&1 | grep -A2 "lossless-claw"
- WARN lossless-claw: installed plugin package requires compiled
   runtime output for TypeScript entry index.ts: expected ./dist/index.js,
   ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs
   (/home/ubuntu/.openclaw/extensions/lossless-claw)

$ ls -la ~/.openclaw/extensions/
total 8
drwxrwxr-x  2 ubuntu ubuntu 4096 May  9 04:36 .
drwx------ 30 ubuntu ubuntu 4096 May  9 04:43 ..
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

openclaw doctor emits a WARN that references ~/.openclaw/extensions/lossless-claw/ (with the explicit path in the warning text) even when that directory does not exist. The actually-loaded plugin is @martian-engineering/lossless-claw v0.9.4 from the npm path; it works correctly.

Steps to reproduce

# Verify the npm-loaded copy is loaded and working
$ openclaw plugins list --json | jq -r '.[] | select(.name|test("lossless-claw")) | "\(.name) \(.version) \(.status)"'
@martian-engineering/lossless-claw 0.9.4 loaded

# Verify the extensions directory is empty
$ ls -la ~/.openclaw/extensions/
total 8
drwxrwxr-x  2 ubuntu ubuntu 4096 May  9 04:36 .
drwx------ 30 ubuntu ubuntu 4096 May  9 04:43 ..

# Run doctor — warning still references the non-existent extensions path
$ openclaw doctor 2>&1 | grep -A2 "lossless-claw"
- WARN lossless-claw: installed plugin package requires compiled
   runtime output for TypeScript entry index.ts: expected ./dist/index.js,
   ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs
   (/home/ubuntu/.openclaw/extensions/lossless-claw)

The warning is emitted on every doctor run.

Expected behavior

When ~/.openclaw/extensions/lossless-claw/ does not exist on disk, openclaw doctor should not emit a warning that references that path. The npm-loaded copy is the one in active use; doctor should resolve the short ID lossless-claw (configured under plugins.entries.lossless-claw) to the loaded npm package and not to a phantom extension directory.

Actual behavior

Doctor emits the WARN above on every run. The warning text contains an absolute path to a directory that does not exist. The text suggests doctor is looking for a dist/ build output in a location it expects but cannot find — but the relevant plugin is loaded fine from a different location entirely.

OpenClaw version

2026.5.7 (eeef486)

Operating system

Ubuntu 24.04

Install method

npm global at /usr/local, system Node v22.22.2 (apt, held)

Model

n/a (this is a doctor / diagnostic warning, not model-dependent)

Provider / routing chain

n/a

Additional provider/model setup details

Relevant config:

  • plugins.entries.lossless-claw is set with summary-model overrides ({ summaryModel: "anthropic/claude-sonnet-4-6", contextThreshold: 0.75 }) — this is a short-ID config-override block, not a plugin source registration.
  • plugins.allow may include the short-ID form lossless-claw.
  • The actually-loaded plugin path is ~/.openclaw/npm/node_modules/@martian-engineering/lossless-claw/dist/index.js.

Logs, screenshots, and evidence

$ openclaw doctor 2>&1 | grep -A2 "lossless-claw"
- WARN lossless-claw: installed plugin package requires compiled
   runtime output for TypeScript entry index.ts: expected ./dist/index.js,
   ./dist/index.mjs, ./dist/index.cjs, index.js, index.mjs, index.cjs
   (/home/ubuntu/.openclaw/extensions/lossless-claw)

$ ls -la ~/.openclaw/extensions/
total 8
drwxrwxr-x  2 ubuntu ubuntu 4096 May  9 04:36 .
drwx------ 30 ubuntu ubuntu 4096 May  9 04:43 ..

History on this host: previously had a v0.3.0 source-only copy at ~/.openclaw/extensions/lossless-claw/ (had index.ts but no dist/). That directory was removed and the gateway restarted. The warning persists, still pointing at the deleted path.

Impact and severity

  • Affected: anyone with the same dual-source history (had a local extensions/lossless-claw/ source copy, later removed in favor of the npm package).
  • Severity: cosmetic only (loaded plugin works fine).
  • Frequency: every openclaw doctor invocation.
  • Consequence: pollutes diagnostic output (every doctor run carries a noise WARN), breaks jq parsing for openclaw config get plugins.entries.lossless-claw --json because the warning is prepended before JSON, and is misleading when triaging unrelated lossless-claw issues. In one notable case on this fleet, a similar always-on warning contributed to an agent making an erroneous "let me fix this" decision that resulted in a 5h 45m gateway outage. The cosmetic warning was not the cause but raised the noise floor.

Additional information

Likely root cause: the short-ID config block plugins.entries.lossless-claw (used to inject summary-model overrides) appears to trigger a separate manifest scan that looks under extensions/<short-id>/ and emits a warning if it doesn't find a dist/-style build output. The scan should be a no-op when the short ID is already resolved to a loaded npm-scoped package (@martian-engineering/lossless-claw). Suggested fix: resolve the short ID through the loaded-plugins registry first; only fall back to the extensions/ scan if no loaded match is found.

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

When ~/.openclaw/extensions/lossless-claw/ does not exist on disk, openclaw doctor should not emit a warning that references that path. The npm-loaded copy is the one in active use; doctor should resolve the short ID lossless-claw (configured under plugins.entries.lossless-claw) to the loaded npm package and not to a phantom extension directory.

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]: lossless-claw doctor warning persists referencing extensions/lossless-claw after that path is removed [2 comments, 3 participants]