-
-
Notifications
You must be signed in to change notification settings - Fork 69.3k
[Bug]: Global installation via Bun results in 404 Not Found on native Dashboard URL (Port 18789) #39693
Description
Bug type
Regression (worked before, now fails)
Summary
Bug: Global installation via Bun results in 404 Not Found on native Dashboard URL (Port 18789)
Description:
When installing OpenClaw globally using the bun package manager, the core gateway server starts successfully, but the internal HTTP server fails to serve the static Control UI assets. Accessing the root Dashboard URL (http://127.0.0.1:18789/) returns a raw 404 Not Found text instead of loading the graphical interface.
Environment:
- OS: Linux Mint (x64)
- Node.js Version: 24.14.0
- Package Manager: Bun (Global Install)
- OpenClaw Version: 2026.3.7
Steps to Reproduce:
- Install OpenClaw globally:
bun install -g openclaw - Run initial configuration and set gateway mode to local:
openclaw setup->openclaw config set gateway.mode local - Start the gateway in the foreground:
openclaw gateway run - Attempt to access the native Control UI via
openclaw dashboardor by manually navigating tohttp://127.0.0.1:18789/.
Expected Behavior:
The built-in static HTTP server should successfully locate and serve the OpenClaw Control UI files on the root path /.
Actual Behavior:
The browser returns a raw HTTP 404 Not Found. The backend WebSocket server successfully initializes and listens on port 18789, but the internal HTTP server seemingly fails to resolve the path to the frontend assets when the application is installed globally via bun (execution path: /home/user/.bun/install/global/...).
Additional Context & Workarounds:
- Fetching and running the decoupled UI via
npx openclaw-studio@latestorbunx openclaw-studioworks perfectly. The standalone Studio successfully connects to the local gateway atws://127.0.0.1:18789. - The issue strictly isolates to the native HTTP server failing to map the bundled UI files from the global
buninstallation directory.
Steps to reproduce
- Install OpenClaw globally using Bun:
bun install -g openclaw. - Initialize setup and set gateway mode to local:
openclaw setupfollowed byopenclaw config set gateway.mode local. - Start the gateway in the foreground:
openclaw gateway run. - Access the dashboard via
openclaw dashboardor by manually navigating tohttp://127.0.0.1:18789.
Expected behavior
The built-in HTTP server should correctly resolve the path to the Control UI assets and serve the dashboard at the root URL (/).
Actual behavior
The browser displays a raw "Not Found" error. While logs confirm the gateway is listening on port 18789, the internal server fails to serve static frontend files when installed via a global Bun path.
OpenClaw version
2026.3.7
Operating system
Linux Mint 22 (x64)
Install method
bun global
Logs, screenshots, and evidence
{"0":"{\"subsystem\":\"gateway/ws\"}","1":"\u001b[93m⇄\u001b[39m \u001b[1mres\u001b[22m \u001b[92m✓\u001b[39m \u001b[1mconfig.set\u001b[22m \u001b[2m126ms\u001b[22m \u001b[2mconn\u001b[22m=\u001b[90m3e3f97db…010a\u001b[39m \u001b[2mid\u001b[22m=\u001b[90m48\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/ws\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:45.953Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:45.954+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change detected; evaluating reload (meta.lastTouchedAt, agents.list)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:46.458Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:46.458+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change applied (dynamic reads: meta.lastTouchedAt, agents.list)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:46.461Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:46.462+05:30"}
{"0":"Config overwrite: /home/shlok/.openclaw/openclaw.json (sha256 01d94ceb4fdd76057dede11608118bc14b4018a380f5dd545a00babe84650cef -> ed16753671182fd66f4a9232457ad1cd0e147ae78e6e0de4714fc9d96ddd73a2, backup=/home/shlok/.openclaw/openclaw.json.bak)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"openclaw","date":"2026-03-08T09:25:46.660Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:264:46","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:264","fileColumn":"46","fileLine":"264","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:264","method":"console.warn"}},"time":"2026-03-08T14:55:46.660+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change detected; evaluating reload (meta.lastTouchedAt)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:47.173Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:47.173+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change applied (dynamic reads: meta.lastTouchedAt)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:47.176Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:47.177+05:30"}
{"0":"Config overwrite: /home/shlok/.openclaw/openclaw.json (sha256 ed16753671182fd66f4a9232457ad1cd0e147ae78e6e0de4714fc9d96ddd73a2 -> bdfdb2b13726aaabbf0a3790e671db210607f885b7db3e1106faee42ff53eb98, backup=/home/shlok/.openclaw/openclaw.json.bak)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"openclaw","date":"2026-03-08T09:25:47.405Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:264:46","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:264","fileColumn":"46","fileLine":"264","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:264","method":"console.warn"}},"time":"2026-03-08T14:55:47.407+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change detected; evaluating reload (meta.lastTouchedAt)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:47.922Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:47.923+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change applied (dynamic reads: meta.lastTouchedAt)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:47.932Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:47.933+05:30"}
{"0":"Config overwrite: /home/shlok/.openclaw/openclaw.json (sha256 bdfdb2b13726aaabbf0a3790e671db210607f885b7db3e1106faee42ff53eb98 -> 3a58263f249cb5f7a9908409614eea4dd4f39265457c38a6d98b7643ef42c779, backup=/home/shlok/.openclaw/openclaw.json.bak)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"openclaw","date":"2026-03-08T09:25:48.307Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:264:46","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:264","fileColumn":"46","fileLine":"264","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:264","method":"console.warn"}},"time":"2026-03-08T14:55:48.309+05:30"}
{"0":"{\"subsystem\":\"gateway/ws\"}","1":"\u001b[93m⇄\u001b[39m \u001b[1mres\u001b[22m \u001b[92m✓\u001b[39m \u001b[1mconfig.set\u001b[22m \u001b[2m75ms\u001b[22m \u001b[2mconn\u001b[22m=\u001b[90m3e3f97db…010a\u001b[39m \u001b[2mid\u001b[22m=\u001b[90m81\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/ws\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:48.328Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:48.329+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change detected; evaluating reload (meta.lastTouchedAt)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:48.831Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:48.832+05:30"}
{"0":"{\"subsystem\":\"gateway/reload\"}","1":"config change applied (dynamic reads: meta.lastTouchedAt)","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/reload\"}","parentNames":["openclaw"],"date":"2026-03-08T09:25:48.837Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:55:48.839+05:30"}
{"0":"{\"subsystem\":\"gateway/ws\"}","1":"\u001b[93m⇄\u001b[39m \u001b[1mres\u001b[22m \u001b[92m✓\u001b[39m \u001b[1magents.files.get\u001b[22m \u001b[2m53ms\u001b[22m \u001b[2mconn\u001b[22m=\u001b[90m3e3f97db…010a\u001b[39m \u001b[2mid\u001b[22m=\u001b[90m98\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway/ws\"}","parentNames":["openclaw"],"date":"2026-03-08T09:29:36.263Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T14:59:36.270+05:30"}
{"0":"{\"subsystem\":\"gateway\"}","1":"signal SIGINT received","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-03-08T09:30:51.869Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T15:00:51.870+05:30"}
{"0":"{\"subsystem\":\"gateway\"}","1":"received SIGINT; shutting down","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gateway\"}","parentNames":["openclaw"],"date":"2026-03-08T09:30:51.892Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T15:00:51.895+05:30"}
{"0":"{\"subsystem\":\"gmail-watcher\"}","1":"gmail watcher stopped","_meta":{"runtime":"node","runtimeVersion":"24.14.0","hostname":"unknown","name":"{\"subsystem\":\"gmail-watcher\"}","parentNames":["openclaw"],"date":"2026-03-08T09:30:52.148Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/shlok/.bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431:14","fileName":"subsystem-Cf9yS0UI.js","fileNameWithLine":"subsystem-Cf9yS0UI.js:431","fileColumn":"14","fileLine":"431","filePath":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js","filePathWithLine":".bun/install/global/node_modules/openclaw/dist/subsystem-Cf9yS0UI.js:431","method":"logToFile"}},"time":"2026-03-08T15:00:52.148+05:30"}Impact and severity
Affected users: All users installing via global Bun on Linux.
Severity: High (Blocks access to the native web dashboard).
Frequency: 100% repro.
Consequence: Users are forced to use standalone Studio as the native dashboard route is unreachable.
Additional information
The backend WebSocket server initializes correctly, and running the decoupled UI via npx openclaw-studio@latest works as a temporary workaround. This confirms the issue is isolated to the native HTTP asset serving path in global Bun environments.