#Codex Issue
1 messages · Page 1 of 1 (latest)
First check the version, because Codex harness packaging has changed a bit:
openclaw --version
That error means OpenClaw selected the Codex app-server harness, but it cannot find the Codex app-server executable it expects. Try this in order:
openclaw update
openclaw doctor
openclaw gateway restart
If you are running OpenClaw from a source checkout, go to that checkout and rebuild deps/assets:
pnpm install
pnpm build
pnpm ui:build
openclaw doctor
openclaw gateway restart
If you installed manually with npm/pnpm, reinstall latest and restart:
npm i -g openclaw@latest
openclaw doctor
openclaw gateway restart
Also verify Codex itself is usable from the same shell/user that runs the gateway:
command -v codex
codex app-server --listen stdio://
If codex exists somewhere non-standard, set it explicitly in config:
{
plugins: {
entries: {
codex: {
enabled: true,
config: {
appServer: {
command: "/absolute/path/to/codex"
}
}
}
}
}
}
Docs: https://docs.openclaw.ai/plugins/codex-harness and https://docs.openclaw.ai/install/updating
If it still fails, paste openclaw --version, openclaw status --all, and the relevant openclaw logs --follow lines.
Failed to refresh gateway service environment from updated install: Error: updated install refresh failed (C:\Users\racki\AppData\Roaming\npm\node_modules\openclaw\dist\index.js): Gateway install failed: Error: schtasks create failed: FEHLER: Zugriff verweigert
That one is Windows permissions: FEHLER: Zugriff verweigert = Access denied while OpenClaw tried to create/refresh the Windows Scheduled Task for the gateway.
First, check whether the update itself actually succeeded:
openclaw --version
openclaw gateway status
openclaw status
Then fix the daemon refresh from PowerShell. If you installed the gateway before from an elevated/admin shell, run this once in PowerShell as Administrator:
openclaw gateway install --force
openclaw gateway restart
openclaw doctor
If you want to avoid the Scheduled Task entirely, newest OpenClaw should fall back to a per-user Startup-folder launcher when schtasks is denied, so updating again from a normal user shell can also help:
npm i -g openclaw@latest
openclaw gateway install --force
openclaw gateway restart
Docs: https://docs.openclaw.ai/gateway and https://docs.openclaw.ai/install/updating
If it still says access denied, paste the outputs of openclaw --version and openclaw gateway status --json. My suspicion is a stale Scheduled Task owned by a different/elevated user, not the Codex binary anymore.
This means the Scheduled Task exists, but nothing is listening on 127.0.0.1:18789. So the gateway either was not started by the task, or it starts and crashes immediately.
Run these next:
openclaw gateway restart
openclaw gateway status
openclaw logs --follow
If logs --follow does not show the crash, open the exact log file from your status output:
Get-Content "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Tail 120
Also useful on native Windows:
schtasks /Query /TN "OpenClaw Gateway" /V /FO LIST
Paste the last ~80 lines of the log after restart. The next clue should be there: usually config parse error, missing env/auth, Codex app-server missing, or the task still launching an old Node/OpenClaw path.
Docs for this path: https://docs.openclaw.ai/gateway/troubleshooting and Windows notes: https://docs.openclaw.ai/platforms/windows
Good, the log has the real issue now. The gateway is starting, but the Codex plugin and the OpenClaw core are out of sync:
@openclaw/codex ... expects buildAgentHookContextChannelFields
OpenClaw 2026.5.12 does not export it
Your update log says:
Before: 2026.5.12
After: 2026.5.12
Installing @openclaw/codex ...
So the plugin moved forward, but core stayed on 2026.5.12. Fix is to make them the same version.
Recommended path: update core, then plugin, then restart:
npm i -g openclaw@latest
openclaw --version
openclaw plugins update codex
openclaw gateway restart
openclaw gateway status
If openclaw --version still says 2026.5.12 after npm install, check whether Windows is picking up an old shim:
where openclaw
npm root -g
npm view openclaw version
Temporary fallback if you cannot update core yet: pin the Codex plugin back to your current core version:
openclaw plugins install @openclaw/codex@2026.5.12 --force
openclaw gateway restart
But I’d try the full core update first, because the original missing app-server binary problem may already be fixed in newer OpenClaw/Codex plugin pairing.
Docs: https://docs.openclaw.ai/install/updating and https://docs.openclaw.ai/cli/plugins
openclaw gateway status
OpenClaw 2026.5.18 (50a2481) — Your personal assistant, minus the passive-aggressive calendar reminders.
|
o
Service: Scheduled Task (registered)
File logs: ~\AppData\Local\Temp\openclaw\openclaw-2026-05-18.log
Command: C:\Program Files\nodejs\node.exe C:\Users\racki\AppData\Roaming\npm\node_modules\openclaw\dist\index.js gateway --port 18789
Service file: ~.openclaw\gateway.cmd
Service env: OPENCLAW_GATEWAY_PORT=18789
Config (cli): ~.openclaw\openclaw.json
Config (service): ~.openclaw\openclaw.json
Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Probe target: ws://127.0.0.1:18789
Dashboard: http://127.0.0.1:18789/
Probe note: Loopback-only gateway; only local clients can connect.
CLI version: 2026.5.18 (~\AppData\Roaming\npm\node_modules\openclaw\openclaw.mjs)
Gateway version: 2026.5.18
Runtime: running (pid 32264, state Wird ausgef�hrt, Verified gateway listener detected on port 18789 even though schtasks did not report a running task.)
Connectivity probe: ok
Capability: read-only
Troubles: run openclaw status
Troubleshooting: https://docs.openclaw.ai/troubleshooting
That status is healthy now:
- CLI and Gateway both
2026.5.18 Connectivity probe: ok- Gateway listener is live on
127.0.0.1:18789
Next test is the actual Codex harness path: send one short message to the agent from the UI/Telegram and see if it replies. If it still fails, grab only the new Codex lines:
openclaw logs --follow
The Capability: read-only line is fine for the status probe; it just means the status command verified read RPC access, not that your agent can’t use tools.
If this fixed it, please right-click the solution message → Apps → ✅ Mark Solution so Answer Overflow indexes the fix for the next Windows/Codex person.
This log is mostly old history. The important part is that after the update/restart I don’t see the old Codex export error repeating yet. The latest useful lines are:
18:58:22 codex is up to date (2026.5.18)
18:58:46 gateway listening
18:58:47 starting channels and sidecars
Two quick things now:
openclaw doctor --fix
openclaw gateway restart
Then hard-refresh the dashboard tab, because your older log shows the Control UI client was still v2026.5.12 for a bit:
Ctrl+Shift+R
After that, send a fresh test message. If it fails, paste only the newest tail after the test:
Get-Content "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Tail 80
Right now this looks much closer: the previous hard blocker was version mismatch, and that part appears fixed.
That’s progress: Codex is now actually being selected and starting.
Key line:
strict-agentic execution contract active ... provider=openai-codex/gpt-5.5 harness=codex
So the previous “missing app-server binary” and plugin/core mismatch are past us.
Two remaining things I see:
- Your dashboard is still loading an old cached UI:
client=openclaw-control-ui webchat v2026.5.12
Do a hard refresh on the dashboard tab: Ctrl+Shift+R. If it stays old, close the tab and reopen http://127.0.0.1:18789/
- Telegram has a slow/timeout call:
fetch timeout ... api.telegram.org ... getMe
That may just be network latency. If Telegram replies eventually, ignore it. If Telegram does not reply, test from the dashboard first so we separate “Codex works” from “Telegram polling is flaky”.
Give the Codex run ~1-2 minutes, then if there’s still no reply paste the next tail after 21:07:38:
Get-Content "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Tail 120
Something went wrong while processing your request. Please try again, or use /new to start a fresh session.
Use /new here. After changing the harness/plugin versions, the existing session can still carry bad state, and the error text is basically telling us to start a clean session.
Then send a tiny test message like hi.
If it fails again, paste the fresh log tail immediately after that failure:
Get-Content "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Tail 160
We need the lines after the strict-agentic execution contract active entry. The current symptom is generic; the next log tail should show whether Codex app-server rejected auth, crashed, timed out, or hit a session-state problem.
This paste cuts off before the actual failure, so it doesn’t include the Codex result after 21:07:38.
Run this instead so we get only the relevant lines and not the whole JSON log history:
Select-String -Path "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Pattern "21:07|21:08|21:09|21:10|21:11|21:12|21:13|agent|codex|Embedded agent|error|failed" | Select-Object -Last 80
Also: the dashboard is still connecting as webchat v2026.5.12, which means browser cache is definitely stale. Close all OpenClaw dashboard tabs, open a new tab to http://127.0.0.1:18789/, then press Ctrl+F5 or Ctrl+Shift+R.
The gateway itself is healthy; we’re now chasing the final Codex run error, not the earlier install problem.
Ok, now we’re back to the original root cause, but with the versions fixed: the Codex plugin is loading, but its managed @openai/codex app-server dependency is missing/not discoverable.
Do this next from PowerShell:
openclaw gateway stop
openclaw plugins install @openclaw/codex@2026.5.18 --force
openclaw plugins doctor
openclaw gateway restart
Then check whether the Codex binary exists in the plugin runtime:
Test-Path "$env:USERPROFILE\.openclaw
pm
ode_modules\.bin\codex.cmd"
Get-ChildItem "$env:USERPROFILE\.openclaw
pm
ode_modules" -Recurse -Filter "codex.cmd" -ErrorAction SilentlyContinue | Select-Object -First 10 FullName
If that still returns nothing, use the explicit-binary fallback:
npm i -g @openai/codex@latest
where codex
Then set the Codex app-server command to the codex.cmd path from where codex in your config:
{
plugins: {
entries: {
codex: {
enabled: true,
config: {
appServer: {
command: "C:\\Users\\racki\\AppData\\Roaming\
pm\\codex.cmd"
}
}
}
}
}
}
Restart after that:
openclaw gateway restart
The important bit: @openclaw/codex@2026.5.18 depends on @openai/codex, but your install doesn’t have the app-server binary where the plugin expects it. Force-reinstalling the plugin should repair that; the global @openai/codex + explicit appServer.command path is the fallback.
Test-Path "$env:USERPROFILE.openclaw pmode_modules.bin\codex.cmd" Get-ChildItem "$env:USERPROFILE.openclaw pm ode_modules" -Recurse -Filter "codex.cmd" -ErrorAction SilentlyContinue | Select-Object -First 10 FullName
Test-Path : Es wurde kein Positionsparameter gefunden, der das Argument "Get-ChildItem" akzeptiert.
In Zeile:1 Zeichen:1
- Test-Path "$env:USERPROFILE.openclaw pmode_modules.bin\codex.cmd" G ...
-
+ CategoryInfo : InvalidArgument: (:) [Test-Path], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.TestPathCommand
PowerShell ate the line break, and the path got mangled: it should be .openclaw pm ode_modules, not .openclaw pmode_modules.
Run these as separate commands:
Test-Path "$env:USERPROFILE\.openclaw
pm
ode_modules\.bin\codex.cmd"
Get-ChildItem "$env:USERPROFILE\.openclaw
pm
ode_modules" -Recurse -Filter "codex.cmd" -ErrorAction SilentlyContinue | Select-Object -First 10 FullName
Or one line with a semicolon between them:
Test-Path "$env:USERPROFILE\.openclaw
pm
ode_modules\.bin\codex.cmd"; Get-ChildItem "$env:USERPROFILE\.openclaw
pm
ode_modules" -Recurse -Filter "codex.cmd" -ErrorAction SilentlyContinue | Select-Object -First 10 FullName
PS C:\Users\racki> Test-Path "$env:USERPROFILE.openclaw pm ode_modules.bin\codex.cmd"; Get-ChildItem "$env:USERPROFILE.openclaw pm ode_modules" -Recurse -Filter "codex.cmd" -ErrorAction SilentlyContinue | Select-Object -First 10 FullName
False
PS C:\Users\
Still mangled: there should be no spaces in that path. It is:
.openclaw
pm
ode_modules
Try copy/pasting exactly this simpler version:
$PluginRoot = Join-Path $env:USERPROFILE ".openclaw
pm
ode_modules"
Test-Path (Join-Path $PluginRoot ".bin\codex.cmd")
Get-ChildItem $PluginRoot -Recurse -Filter "codex.cmd" -ErrorAction SilentlyContinue | Select-Object -First 10 FullName
If Discord/mobile is inserting spaces, type it manually as:
cd $env:USERPROFILE
cd .openclaw
cd npm
cd node_modules
dir .bin\codex.cmd
dir -Recurse codex.cmd
The folder name is literally npm, three letters.
PS C:\Users\racki> cd $env:USERPROFILE
PS C:\Users\racki> cd $env:USERPROFILE
PS C:\Users\racki> cd .openclaw
PS C:\Users\racki.openclaw> cd npm
PS C:\Users\racki.openclaw\npm> cd node_modules
PS C:\Users\racki.openclaw\npm\node_modules> dir .bin\codex.cmd
Verzeichnis: C:\Users\racki\.openclaw\npm\node_modules\.bin
Mode LastWriteTime Length Name
-a---- 18.05.2026 19:55 331 codex.cmd
PS C:\Users\racki.openclaw\npm\node_modules> dir -Recurse codex.cmd
Verzeichnis: C:\Users\racki\.openclaw\npm\node_modules\.bin
Mode LastWriteTime Length Name
-a---- 18.05.2026 19:55 331 codex.cmd
Good, the binary exists. So the quickest fix is to stop relying on auto-discovery and point OpenClaw at it explicitly.
First test it directly:
C:\Users\racki\.openclaw
pm
ode_modules\.bin\codex.cmd app-server --listen stdio://
If it prints/starts without “not recognized” or missing module errors, stop it with Ctrl+C.
Then add this to C:\Users\racki\.openclaw\openclaw.json under your existing plugins.entries.codex config:
{
plugins: {
entries: {
codex: {
enabled: true,
config: {
appServer: {
command: "C:\\Users\\racki\\.openclaw\
pm\
ode_modules\\.bin\\codex.cmd"
}
}
}
}
}
}
Then restart:
openclaw gateway restart
/new
After /new, send a tiny test message. If it still fails, paste the fresh lines around agents/harness again. But this should bypass the managed-binary lookup that is failing.
C:\Users\racki.openclaw : Die Benennung "C:\Users\racki.openclaw" 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
- C:\Users\racki.openclaw
-
+ CategoryInfo : ObjectNotFound: (C:\Users\racki\.openclaw:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\racki.openclaw\npm\node_modules> pm
pm : Die Benennung "pm" 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
- pm
- ~~
- CategoryInfo : ObjectNotFound: (pm:String) [], CommandNotFoundException
- FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\racki.openclaw\npm\node_modules> ode_modules.bin\codex.cmd app-server --listen stdio://
ode_modules.bin\codex.cmd : Das Modul "ode_modules" konnte nicht geladen werden. Wenn Sie weitere Informationen wĂĽnschen, fĂĽhren Sie "Import-Module ode_modules" aus.
In Zeile:1 Zeichen:1
- ode_modules.bin\codex.cmd app-server --listen stdio://
-
+ CategoryInfo : ObjectNotFound: (ode_modules\.bin\codex.cmd:String) [], CommandNotFoundException + FullyQualifiedErrorId : CouldNotAutoLoadModule
PowerShell is splitting the path again. Since you are already here:
PS C:\Users\racki\.openclaw
pm
ode_modules>
run this exact relative command:
.\.bin\codex.cmd app-server --listen stdio://
The leading \.\ matters in PowerShell.
If you want the absolute version, use the call operator &:
& "C:\Users\racki\.openclaw
pm
ode_modules\.bin\codex.cmd" app-server --listen "stdio://"
If it starts and appears to hang, that’s normal for stdio server mode. Press Ctrl+C after a few seconds and then add the explicit appServer.command config path.
S C:\Users\racki.openclaw\npm\node_modules> pm
pm : Die Benennung "pm" 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
- pm
- ~~
- CategoryInfo : ObjectNotFound: (pm:String) [], CommandNotFoundException
- FullyQualifiedErrorId : CommandNotFoundException
PS C:\Users\racki.openclaw\npm\node_modules> ode_modules.bin\codex.cmd app-server --listen stdio://
ode_modules.bin\codex.cmd : Das Modul "ode_modules" konnte nicht geladen werden. Wenn Sie weitere Informationen wĂĽnschen, fĂĽhren Sie "Import-Module ode_modules" aus.
In Zeile:1 Zeichen:1
- ode_modules.bin\codex.cmd app-server --listen stdio://
-
+ CategoryInfo : ObjectNotFound: (ode_modules\.bin\codex.cmd:String) [], CommandNotFoundException + FullyQualifiedErrorId : CouldNotAutoLoadModule
PS C:\Users\racki.openclaw\npm\node_modules> ..bin\codex.cmd app-server --listen stdio://
& "C:\Users\racki.openclaw
2026-05-18T19:23:45.096506Z ERROR codex_app_server_transport::transport: Failed to deserialize JSONRPCMessage: expected value at line 1 column 1
pm
2026-05-18T19:23:45.096736Z ERROR codex_app_server_transport::transport: Failed to deserialize JSONRPCMessage: expected value at line 1 column 1
ode_modules.bin\codex.cmd" app-server --listen "stdio://"
2026-05-18T19:23:45.699116Z ERROR codex_app_server_transport::transport: Failed to deserialize JSONRPCMessage: expected value at line 1 column 1
That output is actually useful: codex.cmd app-server --listen stdio:// started. The JSONRPC errors happened because extra pasted text was typed into the stdio app-server. That confirms the binary can run.
Press Ctrl+C to stop it, then set the command path with OpenClaw’s config CLI instead of hand-editing JSON:
openclaw config set plugins.entries.codex.config.appServer.command "C:\Users\racki\.openclaw
pm
ode_modules\.bin\codex.cmd"
openclaw config validate
openclaw gateway restart
Then start a clean session and test:
/new
If that still fails, paste the newest agents/harness lines, but this should make OpenClaw use the exact codex.cmd we just proved exists and launches.
PS C:\Users\racki> openclaw config set plugins.entries.codex.config.appServer.command "C:\Users\racki.openclaw
pm
ode_modules.bin\codex.cmd"
│
â—‡
🦞 OpenClaw 2026.5.18 (50a2481) — I'll butter your workflow like a lobster roll: messy, delicious, effective.
Updated plugins.entries.codex.config.appServer.command. Restart the gateway to apply.
PS C:\Users\racki> openclaw config validate
│
â—‡
🦞 OpenClaw 2026.5.18 (50a2481) — Gateway online—please keep hands, feet, and appendages inside the shell at all times.
Config valid: ~.openclaw\openclaw.json
That saved a broken path because the line got split again:
C:\Users\racki\.openclaw
pm
ode_modules\.bin\codex.cmd
Set it from your current directory using PowerShell to build the string, so Discord/newlines cannot mangle it:
$CodexCmd = Join-Path $env:USERPROFILE ".openclaw
pm
ode_modules\.bin\codex.cmd"
openclaw config set plugins.entries.codex.config.appServer.command $CodexCmd
openclaw config get plugins.entries.codex.config.appServer.command
openclaw gateway restart
The config get output must be one single line like:
C:\Users\racki\.openclaw
pm
ode_modules\.bin\codex.cmd
If it shows a newline or missing n, rerun the $CodexCmd = Join-Path ... version exactly.
S C:\Users\racki> $CodexCmd = Join-Path $env:USERPROFILE ".openclaw
pm
ode_modules.bin\codex.cmd"
PS C:\Users\racki> openclaw config set plugins.entries.codex.config.appServer.command $CodexCmd
│
â—‡
🦞 OpenClaw 2026.5.18 (50a2481) — I run on caffeine, JSON5, and the audacity of "it worked on my machine."
Updated plugins.entries.codex.config.appServer.command. Restart the gateway to apply.
PS C:\Users\racki> openclaw config get plugins.entries.codex.config.appServer.command
🦞 OpenClaw 2026.5.18 (50a2481) — Alexa, but with taste.
C:\Users\racki.openclaw
pm
ode_modules.bin\codex.cmd
PS C:\Users\racki> openclaw gateway restart
│
â—‡
The config still has literal line breaks in the path. Avoid typing any Windows backslashes for this one; let PowerShell build the path from pieces.
Copy this whole block:
$S = [IO.Path]::DirectorySeparatorChar
$CodexCmd = (Join-Path $env:USERPROFILE '.openclaw') + $S + 'npm' + $S + 'node_modules' + $S + '.bin' + $S + 'codex.cmd'
$CodexCmd
openclaw config set plugins.entries.codex.config.appServer.command $CodexCmd
openclaw config get plugins.entries.codex.config.appServer.command
openclaw gateway restart
The printed $CodexCmd and config get should each be one single line. If either output has line breaks, stop there and paste just that output.
This avoids the accidental backslash+n sequence that keeps turning into a new line on your side.
PS C:\Users\racki> $S = [IO.Path]::DirectorySeparatorChar
PS C:\Users\racki> $CodexCmd = (Join-Path $env:USERPROFILE '.openclaw') + $S + 'npm' + $S + 'node_modules' + $S + '.bin' + $S + 'codex.cmd'
PS C:\Users\racki> $CodexCmd
C:\Users\racki.openclaw\npm\node_modules.bin\codex.cmd
PS C:\Users\racki> openclaw config set plugins.entries.codex.config.appServer.command $CodexCmd
│
â—‡
🦞 OpenClaw 2026.5.18 (50a2481) — Hot reload for config, cold sweat for deploys.
Updated plugins.entries.codex.config.appServer.command. Restart the gateway to apply.
PS C:\Users\racki> openclaw config get plugins.entries.codex.config.appServer.command
🦞 OpenClaw 2026.5.18 (50a2481) — I've read more man pages than any human should—so you don't have to.
C:\Users\racki.openclaw\npm\node_modules.bin\codex.cmd
Perfect, that path is finally correct.
Now restart and start clean:
openclaw gateway restart
Then in the chat/UI:
/new
Send a tiny test message after /new. If it fails, the next log should no longer say “Managed Codex app-server binary was not found”; paste the newest agents/harness/Embedded agent lines if there’s still an error.
This is a different failure now. I don’t see the “Codex binary not found” error anymore. The gateway is freezing while processing a Telegram slash command:
event-loop starvation
active=agent:main:telegram:slash:1674282135(processing,q=1,age=76s)
Do this to isolate Codex from Telegram:
- Restart the gateway.
- Do not test from Telegram yet.
- Open the dashboard at http://127.0.0.1:18789/
- Use
/newthere, then sendhi.
Commands:
openclaw gateway restart
openclaw gateway status
If the dashboard test works, Codex is fixed and the remaining issue is Telegram/event-loop starvation. If the dashboard test also freezes, paste the next tail after the dashboard test:
Select-String -Path "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Pattern "21:28|21:29|21:30|21:31|21:32|agent|codex|app-server|harness|starvation|Embedded|failed|error" | Select-Object -Last 100
We’re close: the explicit Codex path is now accepted, but the next run is hanging hard enough to stall gateway I/O.
⚠️ 🛠️ "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -Command 'Get-ChildItem -Name BOOTSTRAP.md, MEMORY.md … (agent) failed
That means Codex is now far enough to run a shell tool, so the app-server path problem is likely fixed. New failure is inside the agent’s PowerShell command.
Please click/expand that failed tool entry if the UI lets you and copy the full error text after failed. The important part is usually one line below it: path not found, permission denied, execution policy, command timed out, etc.
Also run this in PowerShell from the same machine:
cd $env:USERPROFILE\.openclaw\workspace
Get-ChildItem -Name BOOTSTRAP.md, MEMORY.md -ErrorAction SilentlyContinue
If that command works manually, the failure is probably Codex’s Windows shell wrapper. If it fails manually too, paste that error and we’ll fix the workspace/path side.
"C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe" -Command 'Get-ChildItem -Name BOOTSTRAP.md, MEMORY.md … (agent) all iget
Got it, the UI is only showing the collapsed summary, not the real stderr.
Run these directly in PowerShell and paste the output:
cd $env:USERPROFILE\.openclaw\workspace
Get-ChildItem -Name BOOTSTRAP.md, MEMORY.md -ErrorAction SilentlyContinue
Then grab the fresh Codex/tool error from logs:
Select-String -Path "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Pattern "powershell.exe|Get-ChildItem|tool|exec|failed|stderr|BOOTSTRAP|MEMORY|agent" | Select-Object -Last 120
The good news: we moved past “Codex cannot start.” Now Codex is running and trying to inspect the workspace; we just need the exact reason that tool command failed.
The manual workspace command returning nothing is fine: it just means neither BOOTSTRAP.md nor root MEMORY.md exists there.
That log paste is mostly older history again. The newest relevant problem from your previous tail is still:
event-loop starvation
active=agent:main:telegram:slash:1674282135
So stop testing through Telegram for one round. Telegram is currently the thing tying up the gateway.
Do this:
openclaw gateway restart
Then open the dashboard only:
In the dashboard chat, run:
/new
hi
If the dashboard works, Codex is fixed and Telegram is the remaining issue. If the dashboard also hangs, run this tighter log command after the dashboard test:
Select-String -Path "$env:LOCALAPPDATA\Temp\openclaw\openclaw-2026-05-18.log" -Pattern "21:28|21:29|21:30|21:31|21:32|21:33|21:34|agent/embedded|agents/harness|app-server|codex|starvation|Embedded agent|failed" | Select-Object -Last 80
Don’t send Telegram messages while doing this test; otherwise we can’t separate Telegram starvation from Codex execution.
{
"command": ""C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command 'Get-ChildItem -Name BOOTSTRAP.md, MEMORY.md -ErrorAction SilentlyContinue'",
"cwd": "C:\Users\racki\.openclaw\workspace"
}
that was the telegram error it replied tho
Ah, got it. That JSON is the tool call summary, not necessarily the actual error. Since it replied, Codex is functionally working now. The Get-ChildItem ... BOOTSTRAP.md, MEMORY.md command is just the agent checking for workspace context files; on your machine it returns nothing because those files aren’t there, which is okay.
So current status:
- Gateway is healthy.
- Codex app-server is launching.
- Telegram replies are happening.
- The scary PowerShell line is likely just a failed/empty context-file probe, not the original blocker.
The remaining thing I’d do is clean up the stale Telegram/session state if replies feel slow or you keep seeing starvation warnings:
openclaw gateway restart
/new
Then keep one fresh test thread. If it answers normally, you’re done.