#NPM Enviroment Variable Error consistent

1 messages Β· Page 1 of 1 (latest)

cold pond
#

when trying to install skill dependencies the Enviroment Variable error persisted from before:
o Preferred node manager for skill installs
| npm
|
o Install failed: clawhub - The property 'options.env['steam_master_ipc_name_override']' must be a string without null bytes. Received 'Console\x00'
The property 'options.env['steam_master_ipc_name_override']' must be a string without null bytes. Received 'Console\x00'
Tip: run openclaw doctor to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
|
o Install failed: gog - brew not installed β€” Homebrew is not installed. Install it from https://brew.sh
Tip: run openclaw doctor to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
|
o Install failed: goplaces - brew not installed β€” Homebrew is not installed. Install it from https://brew.sh
Tip: run openclaw doctor to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
|
o Install failed: openai-whisper - brew not installed β€” Homebrew is not installed. Install it from https://brew.sh
Tip: run openclaw doctor to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
|
o Install failed: songsee - brew not installed β€” Homebrew is not installed. Install it from https://brew.sh
Tip: run openclaw doctor to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
|
o Install failed: summarize - brew not installed β€” Homebrew is not installed. Install it from https://brew.sh
Tip: run openclaw doctor to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
|
o Install failed: wacli - go not installed β€” install manually: https://go.dev/doc/install
Tip: run openclaw doctor to review skills + requirements.
Docs: https://docs.openclaw.ai/skills

Homebrew

The Missing Package Manager for macOS (or Linux).

jagged surgeBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> βœ… Mark Solution

elder tulipBOT
mighty hillBOT
# cold pond when trying to install skill dependencies the Enviroment Variable error persiste...

That first one is a separate failure from the missing brew / go errors.

steam_master_ipc_name_override=Console\0 is an inherited environment variable with a NUL byte in it. Node refuses to spawn any child process when options.env contains that, so the clawhub dependency installer dies before npm even runs. This often comes from launching apps from a Steam/Linux desktop session.

Please grab the version first:

openclaw --version

Then try starting OpenClaw/Gateway from a clean environment, for example:

env -u steam_master_ipc_name_override openclaw doctor
env -u steam_master_ipc_name_override openclaw skills check
mighty hillBOT
# cold pond when trying to install skill dependencies the Enviroment Variable error persiste...

If your gateway is already running as a daemon/service, stop it and restart it from a shell/session where that variable is unset, or override it to a normal value before launching:

steam_master_ipc_name_override=Console openclaw doctor

The other failures are normal dependency checks:

  • gog, goplaces, openai-whisper, songsee, summarize need brew for their installer path, so install Homebrew/Linuxbrew or install those dependencies manually.
  • wacli needs Go: https://go.dev/doc/install

Docs: https://docs.openclaw.ai/tools/skills and https://docs.openclaw.ai/cli/skills

If unsetting that env var fixes clawhub, this is probably worth filing as a bug so OpenClaw can sanitize inherited NUL env values before skill dependency installs: https://github.com/openclaw/openclaw/issues

cold pond
#

PS C:\Users\Timmy Vollmer> env -u steam_master_ipc_name_override openclaw doctor
env : Die Benennung "env" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt
ist (sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1

  • env -u steam_master_ipc_name_override openclaw doctor
  •   + CategoryInfo          : ObjectNotFound: (env:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
    
    

PS C:\Users\Timmy Vollmer> env -u steam_master_ipc_name_override openclaw skills check
env : Die Benennung "env" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt
ist (sofern enthalten), und wiederholen Sie den Vorgang.
In Zeile:1 Zeichen:1

  • env -u steam_master_ipc_name_override openclaw skills check
  •   + CategoryInfo          : ObjectNotFound: (env:String) [], CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
mighty hillBOT
mighty hillBOT
cold pond
mighty hillBOT
# cold pond

Thanks, that log helps. Two separate things are showing up.

First: the NUL env var is still present when openclaw doctor runs. On Windows/PowerShell, run these before starting OpenClaw:

Remove-Item Env:\steam_master_ipc_name_override -ErrorAction SilentlyContinue
[Environment]::SetEnvironmentVariable('steam_master_ipc_name_override', $null, 'User')
[Environment]::SetEnvironmentVariable('steam_master_ipc_name_override', $null, 'Machine') # may need admin
openclaw doctor

If the Machine line errors, skip it unless you opened PowerShell as admin. Then fully close/reopen PowerShell and start OpenClaw from there, not from Steam or a Steam-launched terminal. To check whether it is gone:

Get-ChildItem Env: | Where-Object Name -eq 'steam_master_ipc_name_override'
mighty hillBOT
# cold pond

Second: answer No to Enable zsh shell completion on Windows. That prompt is not useful in PowerShell and it looks like the spawn for completion setup is where the bad env finally crashes.

Also important: doctor says your system Node is below the required 22.19+:

System Node unknown at C:\Program Files
odejs
ode.exe is below the required Node 22.19+

Install Node 24 recommended, or Node 22 LTS from https://nodejs.org/, then reopen PowerShell and check:

node --version
openclaw --version
openclaw doctor
mighty hillBOT
# cold pond

Most of the brew not installed skill messages are expected on native Windows. Those skills have Homebrew/macOS-style installers; disable the ones you don’t use with openclaw doctor --fix, or install the specific Windows-compatible dependencies manually where available.

cold pond
#

PS C:\WINDOWS\system32> node --version

openclaw --version
openclaw doctor
v22.22.3
OpenClaw 2026.5.27 (27ae826)
node:child_process:999
throw new ERR_INVALID_ARG_VALUE(propName, arg, 'must be a string without null bytes');
^

TypeError [ERR_INVALID_ARG_VALUE]: The property 'options.env['steam_master_ipc_name_override']' must be a string without null bytes. Received 'Console\x00'
at validateArgumentNullCheck (node:child_process:999:11)
at normalizeSpawnArguments (node:child_process:726:7)
at Object.spawn (node:child_process:780:13)
at runCliRespawnPlan (file:///C:/Users/Timmy%20Vollmer/AppData/Roaming/npm/node_modules/openclaw/dist/entry.js:293:24)
at ensureCliRespawnReady (file:///C:/Users/Timmy%20Vollmer/AppData/Roaming/npm/node_modules/openclaw/dist/entry.js:436:4)
at file:///C:/Users/Timmy%20Vollmer/AppData/Roaming/npm/node_modules/openclaw/dist/entry.js:440:8
at ModuleJob.run (node:internal/modules/esm/module_job:343:25)
at async onImport.tracePromise.proto (node:internal/modules/esm/loader:681:26)
at async tryImport (file:///C:/Users/Timmy%20Vollmer/AppData/Roaming/npm/node_modules/openclaw/openclaw.mjs:303:5)
at async file:///C:/Users/Timmy%20Vollmer/AppData/Roaming/npm/node_modules/openclaw/openclaw.mjs:491:9 {
code: 'ERR_INVALID_ARG_VALUE'
}

Node.js v22.22.3

mighty hillBOT
# cold pond PS C:\WINDOWS\system32> node --version >> openclaw --version >> openclaw doctor ...

Good, Node is fixed now. The remaining crash is earlier than the skill installer: OpenClaw’s CLI respawn is inheriting the bad Steam env var before doctor can run.

In that same PowerShell window, try overwriting it with a clean string first:

$env:steam_master_ipc_name_override = 'Console'
openclaw doctor

If that works, remove the persistent copy too:

[Environment]::SetEnvironmentVariable('steam_master_ipc_name_override', $null, 'User')
[Environment]::SetEnvironmentVariable('steam_master_ipc_name_override', $null, 'Machine')

Then fully close PowerShell and open a fresh one from the Start menu, not from Steam / a Steam-launched app.

mighty hillBOT
cold pond
#

Name : steam_master_ipc_name_override
Value : Console

mighty hillBOT
# cold pond Name : steam_master_ipc_name_override Value : Console

That output is clean now: PowerShell is seeing steam_master_ipc_name_override=Console without the NUL byte.

Try the command again in that same window:

openclaw doctor

If it still throws Received 'Console\x00', the bad value is likely coming from the parent process/session and Windows is hiding the terminator when displaying it. In that case:

[Environment]::SetEnvironmentVariable('steam_master_ipc_name_override', 'Console', 'User')

Then fully close all terminals, reopen PowerShell from the Start menu, and run:

mighty hillBOT
cold pond
#

still persists after these steps

mighty hillBOT
# cold pond still persists after these steps

Okay, then bypass the OpenClaw CLI respawn path. The stack trace is dying inside runCliRespawnPlan, and there is a built-in escape hatch for that.

Run this in PowerShell:

$env:steam_master_ipc_name_override = 'Console'
$env:OPENCLAW_NO_RESPAWN = '1'
openclaw doctor

If that works, make the no-respawn setting persistent for now:

[Environment]::SetEnvironmentVariable('OPENCLAW_NO_RESPAWN', '1', 'User')
[Environment]::SetEnvironmentVariable('steam_master_ipc_name_override', 'Console', 'User')
mighty hillBOT
# cold pond still persists after these steps

Then close/reopen PowerShell and retry.

To sanity-check what Node actually sees:

node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v?.includes('\0'))"

Expected output should be roughly:

"Console" false

If OPENCLAW_NO_RESPAWN=1 fixes it, please file this as a bug with the stack trace. OpenClaw should sanitize inherited env vars before CLI respawn, same as it needs to before skill dependency installs: https://github.com/openclaw/openclaw/issues

cold pond
#

PS C:\Users\Timmy Vollmer> node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v?.includes('\0'))"
"Console\u0000" true
PS C:\Users\Timmy Vollmer>

#

PS C:\Users\Timmy Vollmer> node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v?.includes('\0'))"
"Console\u0000" true
PS C:\Users\Timmy Vollmer> openclaw doctor
|
o

OpenClaw 2026.5.27 (27ae826) β€” I'm the reason your shell history looks like a hacker-movie montage.

β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„
β–ˆβ–ˆβ–‘β–„β–„β–„β–‘β–ˆβ–ˆβ–‘β–„β–„β–‘β–ˆβ–ˆβ–‘β–„β–„β–„β–ˆβ–ˆβ–‘β–€β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–‘β–„β–„β–€β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–„β–„β–€β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–‘β–ˆβ–ˆ
β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–‘β–ˆβ–ˆβ–‘β–€β–€β–‘β–ˆβ–ˆβ–‘β–„β–„β–„β–ˆβ–ˆβ–‘β–ˆβ–‘β–ˆβ–‘β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–€β–€β–‘β–ˆβ–ˆβ–‘β–ˆβ–‘β–ˆβ–‘β–ˆβ–ˆ
β–ˆβ–ˆβ–‘β–€β–€β–€β–‘β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–€β–€β–€β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–„β–‘β–ˆβ–ˆβ–‘β–€β–€β–„β–ˆβ–ˆβ–‘β–€β–€β–‘β–ˆβ–‘β–ˆβ–ˆβ–‘β–ˆβ–ˆβ–„β–€β–„β–€β–„β–ˆβ–ˆ
β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€
OPENCLAW

T OpenClaw doctor

mighty hillBOT
# cold pond PS C:\Users\Timmy Vollmer> node -e "const v=process.env.steam_master_ipc_name_ov...

That confirms it: Node is literally receiving Console\0, so OpenClaw cannot safely spawn children until that process environment is cleaned.

PowerShell’s env provider is apparently not replacing the bad value. Try from Command Prompt, not PowerShell:

set steam_master_ipc_name_override=Console
set OPENCLAW_NO_RESPAWN=1
node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v && v.includes('οΏ½'))"
openclaw doctor

Expected check:

"Console" false
mighty hillBOT
# cold pond PS C:\Users\Timmy Vollmer> node -e "const v=process.env.steam_master_ipc_name_ov...

If CMD still shows "Console\u0000" true, remove the persistent Windows env var directly and reboot:

reg delete HKCU\Environment /v steam_master_ipc_name_override /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v steam_master_ipc_name_override /f

The HKLM command may need an Administrator terminal. If it says the value was not found, that’s fine.

After reboot, run:

node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v?.includes('οΏ½'))"

If it prints undefined undefined or "Console" false, OpenClaw should get past this. This is still an OpenClaw bug too, but right now the immediate problem is the poisoned Windows environment block.

mighty hillBOT
# cold pond PS C:\Users\Timmy Vollmer> node -e "const v=process.env.steam_master_ipc_name_ov...

That means OPENCLAW_NO_RESPAWN=1 got you past the first crash, but the bad env var is still in the OpenClaw process. Any later installer/check that spawns npm, go, etc. can still hit the same error.

For a clean temporary launch, run OpenClaw through a tiny Node wrapper that deletes the poisoned env var before spawning OpenClaw:

node -e "delete process.env.steam_master_ipc_name_override; process.env.OPENCLAW_NO_RESPAWN='1'; const {spawnSync}=require('child_process'); const r=spawnSync('cmd.exe',['/d','/s','/c','openclaw doctor'],{stdio:'inherit',env:process.env}); process.exit(r.status ?? 1)"

If that works, use the same pattern for skills check:

node -e "delete process.env.steam_master_ipc_name_override; process.env.OPENCLAW_NO_RESPAWN='1'; const {spawnSync}=require('child_process'); const r=spawnSync('cmd.exe',['/d','/s','/c','openclaw skills check'],{stdio:'inherit',env:process.env}); process.exit(r.status ?? 1)"

Longer-term, remove the variable from Windows/Steam and reboot. Since Node still prints "Console\\u0000" true, it is still coming from the parent Windows environment block somewhere. The wrapper is just a workaround to unblock OpenClaw while that gets cleaned up.

cold pond
#

node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v?.includes(''))"
"Console\u0000" true

mighty hillBOT
# cold pond node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.st...

Tiny correction: v?.includes('') will always be true for any string, so that check doesn’t tell us whether the NUL byte is still there.

Use this exact check:

node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v?.includes('οΏ½'))"

That said, JSON.stringify(v) already showing "Console\u0000" means the bad NUL byte is still present.

To bypass it for OpenClaw, run the wrapper command from my previous message, because it deletes the variable inside Node before launching OpenClaw:

node -e "delete process.env.steam_master_ipc_name_override; process.env.OPENCLAW_NO_RESPAWN='1'; const {spawnSync}=require('child_process'); const r=spawnSync('cmd.exe',['/d','/s','/c','openclaw doctor'],{stdio:'inherit',env:process.env}); process.exit(r.status ?? 1)"
cold pond
#

openclaw
[openclaw] Could not start the CLI.
[openclaw] Reason: The property 'options.env['steam_master_ipc_name_override']' must be a string without null bytes. Received 'Console\x00'
[openclaw] Debug: set OPENCLAW_DEBUG=1 to include the stack trace.
[openclaw] Try: openclaw doctor
[openclaw] Help: openclaw --help

mighty hillBOT
# cold pond openclaw [openclaw] Could not start the CLI. [openclaw] Reason: The property 'op...

That error is expected if you run plain openclaw while Windows is still giving Node steam_master_ipc_name_override=Console\0.

For now, don’t launch it directly. Launch it through the cleanup wrapper:

node -e "delete process.env.steam_master_ipc_name_override; process.env.OPENCLAW_NO_RESPAWN='1'; const {spawnSync}=require('child_process'); const r=spawnSync('cmd.exe',['/d','/s','/c','openclaw doctor'],{stdio:'inherit',env:process.env}); process.exit(r.status ?? 1)"

For normal openclaw:

node -e "delete process.env.steam_master_ipc_name_override; process.env.OPENCLAW_NO_RESPAWN='1'; const {spawnSync}=require('child_process'); const r=spawnSync('cmd.exe',['/d','/s','/c','openclaw'],{stdio:'inherit',env:process.env}); process.exit(r.status ?? 1)"

The real fix is still to remove whatever is injecting that bad Steam env var and reboot. Since Node itself sees Console\u0000, this is outside OpenClaw’s config. OpenClaw should handle it more gracefully, but your Windows process environment is currently poisoned.

cold pond
#

How do I fix it then?? What's Happening?

mighty hillBOT
# cold pond How do I fix it then?? What's Happening?

What’s happening:

Windows is giving every program you launch an environment variable named steam_master_ipc_name_override whose value is not normal text. It is:

Console\0

That hidden \0 is a NUL byte. Node.js refuses to start child processes when any env var contains a NUL byte, because that can corrupt the process environment block. OpenClaw uses Node and needs to spawn child processes, so it crashes before it can do useful work.

This is not an OpenClaw config problem. It is a poisoned Windows process environment, probably coming from Steam or something Steam-launched.

Permanent fix path:

  1. Fully exit Steam
    • Steam menu -> Exit
    • Then check Task Manager and end any remaining steam.exe / Steam helper processes.
mighty hillBOT
# cold pond How do I fix it then?? What's Happening?
  1. Open Command Prompt as Administrator and run:
reg delete HKCU\Environment /v steam_master_ipc_name_override /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v steam_master_ipc_name_override /f

If either says the value does not exist, that is okay.

  1. Reboot Windows. Not just close PowerShell. Reboot.

  2. After reboot, open PowerShell from the Start menu, not from Steam, and test:

node -e "const v=process.env.steam_master_ipc_name_override; console.log(JSON.stringify(v), v?.includes('οΏ½'))"
mighty hillBOT
mighty hillBOT
# cold pond How do I fix it then?? What's Happening?
  1. Then run:
openclaw doctor

Temporary workaround if you need OpenClaw right now:

node -e "delete process.env.steam_master_ipc_name_override; process.env.OPENCLAW_NO_RESPAWN='1'; const {spawnSync}=require('child_process'); const r=spawnSync('cmd.exe',['/d','/s','/c','openclaw doctor'],{stdio:'inherit',env:process.env}); process.exit(r.status ?? 1)"

But the actual fix is removing the bad env var at the Windows/Steam source and rebooting. Also: please file this stack trace as a GitHub issue, because OpenClaw should sanitize broken inherited env vars instead of crashing here: https://github.com/openclaw/openclaw/issues

cold pond
#

aappereantly it has to do with something called Duo

mighty hillBOT
# cold pond aappereantly it has to do with something called Duo

Yep, that tracks. I found DuoStream/Duo issues describing this exact env var: when Duo’s β€œIsolate Steam” option is enabled, it can set steam_master_ipc_name_override globally with a corrupted NUL-byte value, which breaks Node/Electron apps.

So the fix is on the Duo side:

  1. Open Duo.
  2. Disable Isolate Steam.
  3. Fully exit Duo and Steam.
  4. Remove the bad env var if it remains:
reg delete HKCU\Environment /v steam_master_ipc_name_override /f
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v steam_master_ipc_name_override /f
  1. Reboot Windows.
  2. Verify:
mighty hillBOT