#Bundled plugin runtime deps are missing.

33 messages · Page 1 of 1 (latest)

orchid vapor
#

I'm tried installing openclaw earlier and there have been a few issues. I used the windows terminal method. When I got to the telegram token, it shut down and caused a bunch of errors. I got those fixed, but now openclaw is not configured. I ran the doctor after getting the terminal script permissions back and i'm consistently getting the error:

Bundled plugin runtime deps are missing. │
│ - @discordjs/opus@^0.10.0 (used by discord) │
│ Fix: run openclaw doctor --fix to install them.

Running the doctor --fix doesn't fix them though. What do I try next?

dark daggerBOT
#

First, can you paste:

openclaw --version
node -v
npm -v

That error is specifically the bundled Discord runtime dep check, and recent releases changed npm packaging around this, so version really matters here.

What I’d try next on native Windows:

openclaw update
openclaw doctor
#

If update fails, reopen PowerShell and paste the full output from:

openclaw doctor --fix

The important part is whether it shows something like:

Failed to install bundled plugin runtime deps: ...

A couple useful notes:

  • @discordjs/opus is a Discord voice dep, so it should not be the thing blocking basic Telegram setup by itself.
  • If the install is otherwise healthy, you can finish setup afterward with:
orchid vapor
#

PS C:\Users\peter> node --version
v24.14.1
PS C:\Users\peter> openclaw.cmd --version
OpenClaw 2026.4.14 (323493f)
PS C:\Users\peter> openclaw --version
OpenClaw 2026.4.14 (323493f)
PS C:\Users\peter> node -v
v24.14.1
PS C:\Users\peter> npm -v
11.11.0

Running update. Got a warning about downgrading from 2026.4.14 to latest (unknown) can break configuration. Continued anyways. Before and after version are both 2026.4.14.
"No plugin updates needed"
The update didn't "fail" but it didn't update anything either.

I ran doctor:
Install missing bundled plugin runtime deps now?
│ Yes
Failed to install bundled plugin runtime deps: Error: npm install failed
I ran doctor --fix:
It failed to install the plugin bundle again.

Attempting openclaw configure.
I was able to add a token this time with no errors.

Attempting openclaw onboard.

dark daggerBOT
#

Nice, this helps a lot. You’re on a current version, so this does not look like “just update first” anymore.

The big thing: @discordjs/opus is a Discord voice runtime dep. It should not block Telegram or basic text setup by itself.

So my recommendation is:

  1. Keep going with openclaw onboard
  2. If onboarding finishes, verify with:
    openclaw status
    openclaw doctor
    

If the only thing still complaining is @discordjs/opus, I’d treat that as a native Windows/npm repair bug, not a blocker for the rest of setup.

If you want to fix the warning directly, try this from a fresh PowerShell:

#
$OpenClawRoot = Join-Path (npm root -g) "openclaw"
cd $OpenClawRoot
npm install --no-save --package-lock=false --legacy-peer-deps @discordjs/opus@0.10.0 --verbose

Then run:

openclaw doctor

Why this step: doctor is doing a nested npm install internally, and on Windows it looks like that call is failing without giving you the useful npm details. Running it manually should show the real cause.

If that manual install fails, paste the output here. That should finally expose whether it’s:

  • permissions/path weirdness
  • npm resolution weirdness
orchid vapor
#

When attempting to setup ollama local/cloud, it gave me a signin link. When opening the link, Chrome shows "Invalid key format" and the signin fails on the onboarding terminal.

Restarting onboard.
Choosing Ollama local this time.
Skipping select channel because I just got that setup in the last message.

TypeError: Cannot read properties of undefined (reading 'trim')

Next. Openclaw status.
Only 1 yellow warning in the memory section = "dirty"

next. openclaw doctor.
still failing the plugin part.
same thing happens during doctor --fix.

Going to run the fix you sent in a new powershell - Lots of fetching and getting. npm errors newar the end:

npm http fetch GET 200 https://registry.npmjs.org/@emnapi%2Fwasi-threads 91ms (cache revalidated)
npm verbose stack Error: An unknown git error occurred
npm verbose stack at makeError (C:\Program Files\nodejs\node_modules\npm\node_modules@npmcli\git\lib\make-error.js:28:13)
npm verbose stack at C:\Program Files\nodejs\node_modules\npm\node_modules@npmcli\git\lib\spawn.js:37:26
npm verbose stack at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
npm verbose stack at async RetryOperation._fn (C:\Program Files\nodejs\node_modules\npm\node_modules@gar\promise-retry\lib\index.js:11:24)
npm error code ENOENT
npm error syscall spawn git
npm error path git
npm error errno -4058
npm error enoent An unknown git error occurred
npm error enoent This is related to npm not being able to find a file.
npm error enoent
npm verbose cwd C:\Users\peter\AppData\Roaming\npm\node_modules\openclaw
npm verbose os Windows_NT 10.0.26200
npm verbose node v24.14.1
npm verbose npm v11.11.0
npm verbose exit -4058
npm verbose code -4058
npm error A complete log of this run can be found in: C:\Users\peter\AppData\Local\npm-cache_logs\2026-04-16T00_58_39_827Z-debug-0.log

Running doctor next.

dark daggerBOT
#

Aha, we found the real blocker.

doctor --fix is failing because npm is hitting:

npm error syscall spawn git
npm error enoent

So the next step is simply to install Git for Windows. The docs call this out explicitly for Windows, even on npm installs.

Try:

winget install --id Git.Git -e
#

Then fully close and reopen PowerShell, and verify:

git --version

After that, rerun:

openclaw doctor --fix

If that passes, then retry:

openclaw onboard
#

A couple quick notes:

  • The @discordjs/opus failure was a symptom. The root cause is missing git.
  • The Invalid key format and Cannot read properties of undefined (reading 'trim') look like separate onboarding/provider bugs, not the same issue.
  • That trim crash is actually listed as fixed on main in the changelog, so if Git fixes npm but onboarding still crashes there, I’d stop blaming your machine.

If onboarding still hits the trim error after Git is installed, use this as a workaround:

openclaw configure --section model --section channels

And if it still reproduces, that’s GitHub-issue territory:
https://github.com/openclaw/openclaw/issues

Docs:

orchid vapor
#

Same warning about the discordjs/opus plugin.

Installed Git with the winget. git version 2.53.0.windows.3
Running openclaw doctor --fix - same plugin failure for opus.

dark daggerBOT
#

Got it. Since Git is installed now and doctor --fix still fails, the next useful step is to run the exact npm command doctor is trying, but with verbose output.

Also, small correction from me: the manual npm command I gave earlier was a bit too broad. Use this exact one instead:

cd (Join-Path (npm root -g) "openclaw")
npm install --omit=dev --no-save --package-lock=false --ignore-scripts --legacy-peer-deps @discordjs/opus@0.10.0 --verbose

Then run:

openclaw doctor

Why this step: it should show the real npm failure instead of doctor collapsing it to just npm install failed.

#

If you’d rather skip deeper debugging, the other sane move now is a reinstall now that Git is present:

& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -NoOnboard

That reinstalls the CLI, not your user config, and is what the docs recommend after Windows spawn git issues.

So I’d do one of these two:

  1. Preferred for diagnosis: exact npm command above, then paste the last ~30 lines if it fails
  2. Preferred for “just repair it”: rerun the installer with -NoOnboard

I’d ignore the trim onboarding bug for the moment, that looks separate.

Docs:

orchid vapor
#

I ran the posted fix.

npm http fetch GET 200 https://registry.npmjs.org/tar 57ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/@discordjs%2Fnode-pre-gyp 121ms (cache revalidated)
npm http fetch GET 200 https://registry.npmjs.org/@discordjs%2Fopus 74ms (cache revalidated)
npm http fetch GET 200 https://codeload.github.com/whiskeysockets/libsignal-node/tar.gz/1c30d7d7e76a3b0aa120b04dc6a26f5a12dccf67 11253ms (cache revalidated)

added 41 packages, removed 209 packages, changed 1 package, and audited 720 packages in 35s

106 packages are looking for funding
run npm fund for details

npm verbose os Windows_NT 10.0.26200
npm verbose node v24.14.1
npm verbose npm v11.11.0
npm verbose exit 0
npm info ok
PS C:\Users\peter\AppData\Roaming\npm\node_modules\openclaw> npm audit fix --force
npm warn using --force Recommended protections disabled.
npm error code ENOLOCK
npm error audit This command requires an existing lockfile.
npm error audit Try creating one first with: npm i --package-lock-only
npm error audit Original error: loadVirtual requires existing shrinkwrap file
npm error A complete log of this run can be found in:

Running doctor again. Got a message:
OpenClaw doctor

│ This install is not a git checkout. │
│ Run openclaw update to update via your │
│ package manager (npm/pnpm), then rerun │
│ doctor.
Now there's a huge list of missing plugins. I chose "Yes" to install missing plugins.
still failing. Ran doctor --fix. no change, still fails.

Reinstalling openclaw with no onboarding.
New error.

[*] Installing OpenClaw (openclaw@latest)...
npm.cmd : npm error code EBUSY
At line:474 char:22

  • ... npmOutput = & (Get-NpmCommandPath) install -g
    "$packageName@$Tag" 2>& ...
  •             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    + CategoryInfo          : NotSpecified: (npm err
   or code EBUSY:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
dark daggerBOT
#

I see what happened.

That manual npm install did succeed, but because it was run inside the packaged global OpenClaw directory, it also mutated the install (removed 209 packages), which is why doctor is now complaining about lots of missing bundled plugins.

The good news is this looks recoverable. The next move is a clean reinstall, but first get out of the install folder.

Do this in a fresh PowerShell

cd $HOME

If you still have any terminal open in:

C:\Users\peter\AppData\Roaming\npm\node_modules\openclaw
#

close it.

Then try:

openclaw gateway stop
npm rm -g openclaw
npm install -g openclaw@2026.4.14

Then:

openclaw doctor

Why the installer hit EBUSY

#

Most likely one of these:

  • your shell was currently inside the OpenClaw install directory
  • the gateway/node process still had files open
  • Windows had the folder locked briefly

So the key bit is: don’t reinstall while your cwd is inside the package dir.

Also

Do not run npm audit fix --force inside the packaged OpenClaw install. That path is not a repo checkout and it will just mutate the shipped dependency tree again.

If npm rm -g openclaw or npm install -g openclaw@2026.4.14 still throws EBUSY even from $HOME, I’d do the boring-but-effective Windows move: reboot once, open a fresh PowerShell, then rerun those three commands.

This reinstall should not remove your normal user state under %USERPROFILE%\.openclaw.

Docs:

orchid vapor
#

Oops. I didn't pay attention to the directory. I ran the posted lines. I'm back down to just the opus plugin fault again.

PS C:\Users\peter> npm rm -g openclaw

removed 859 packages in 8s
PS C:\Users\peter> npm install -g openclaw@2026.4.14
npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated npmlog@5.0.1: This package is no longer supported.
npm warn deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm warn deprecated glob@7.2.3: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated are-we-there-yet@2.0.0: This package is no longer supported.
npm warn deprecated gauge@3.0.2: This package is no longer supported.
npm warn deprecated tar@6.2.1: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead

added 709 packages in 2m

104 packages are looking for funding
run npm fund for details

dark daggerBOT
#

Nice, that’s progress. The reinstall worked, and those npm deprecation warnings are just npm noise.

If you’re now back to only the @discordjs/opus complaint, I would stop doing package surgery for the moment. That looks a lot like the current native Windows optional-dep bug.

The next important question is: does OpenClaw actually work now despite the warning?

Try the docs’ Windows smoke test:

openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."

And/or open the UI:

openclaw dashboard
#

If that works

You’re basically unblocked. I’d continue setup and ignore the opus warning unless you specifically need Discord voice.

If that does not work

Then this looks very close to a fresh native-Windows bug report:
https://github.com/openclaw/openclaw/issues/65974

At that point I’d treat it as a real Windows bug, not something you’re doing wrong. The docs still recommend WSL2 as the more stable path:
https://docs.openclaw.ai/platforms/windows

So, next best step: run that WINDOWS-HATCH-OK smoke test and tell me whether it replies correctly.

orchid vapor
#

Smoke test result:
PS C:\Users\peter> openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."

🦞 OpenClaw 2026.4.14 (323493f) — If something's on fire, I can't extinguish it—but I can write a beautiful postmortem.

21:39:26 [agent/embedded] embedded run agent end: runId=5df03a01-ecfc-454f-bf95-ce427b2b9a63 isError=true model=gemma4 provider=ollama error=404 {"error":"model 'gemma4' not found"} rawError=404 {"error":"model 'gemma4' not found"}
21:39:26 [agent/embedded] auth profile failure state updated: runId=5df03a01-ecfc-454f-bf95-ce427b2b9a63 profile=sha256:9c018ec112cf provider=ollama reason=model_not_found window=cooldown reused=false
21:39:26 [agent/embedded] embedded run failover decision: runId=5df03a01-ecfc-454f-bf95-ce427b2b9a63 stage=assistant decision=surface_error reason=model_not_found from=ollama/gemma4 profile=sha256:9c018ec112cf
404 {"error":"model 'gemma4' not found"}

I don't need discord voice. The web page interface is up and running. I appreciate the help.

dark daggerBOT
#

Nice, we’ve isolated it.

At this point the real blocker is not @discordjs/opus. It’s this:

404 {"error":"model 'gemma4' not found"}

So OpenClaw is up, but your default Ollama model is pointing at something Ollama doesn’t actually have.

Fix

First see what Ollama has installed:

ollama list
#

Then do one of these:

Option A, easiest: pick a model you already have

openclaw configure --section model

and choose one that appears in ollama list.

Option B: if you specifically want gemma4, pull it first:

ollama pull gemma4

Then verify:

orchid vapor
#

PS C:\Users\peter> ollama list
NAME ID SIZE MODIFIED
gemma4:latest c6eb396dbd59 9.6 GB 13 hours ago

dark daggerBOT
#

Perfect, that explains it.

Your local Ollama model is:

gemma4:latest

but OpenClaw is trying:

gemma4

So I’d switch OpenClaw to the exact tagged model name.

Try:

#
openclaw models list
openclaw models set ollama/gemma4:latest

Then rerun the smoke test:

openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."

If that works, you’re basically done, and I’d keep ignoring the @discordjs/opus warning since you don’t need Discord voice.

If models list shows a slightly different Ollama model ID, use that exact one with openclaw models set ....

Glad we caught this. If the smoke test passes, please right-click the solution message → Apps → ✅ Mark Solution so Answer Overflow can index it for the next person.

orchid vapor
#

All good now. Thank you.
PS C:\Users\peter> openclaw agent --local --agent main --thinking low -m "Reply with exactly WINDOWS-HATCH-OK."

🦞 OpenClaw 2026.4.14 (323493f)
WhatsApp automation without the "please accept our new privacy policy".

WINDOWS-HATCH-OK