#My dashboard
1 messages · Page 1 of 1 (latest)
Yeah, a few dashboard auth rules got stricter recently, so this is often not “the dashboard broke” so much as “the old access path no longer passes checks”.
Most common post-update causes:
- opening the UI on
http://<lan-ip>:18789orhttp://<tailscale-ip>:18789instead ofhttp://127.0.0.1:18789/ - missing/changed gateway token or password in Overview → Gateway Access
- non-localhost access now needing explicit
gateway.controlUi.allowedOrigins - remote plain HTTP hitting device-auth / secure-context checks
First, paste these:
pnpm openclaw --version
pnpm openclaw status
pnpm openclaw gateway status
pnpm openclaw doctor
Also tell me the exact dashboard error, for example:
unauthorizedorigin not alloweddevice identity requireddisconnected (1008): pairing required
Quick test right now:
- if local, open
http://127.0.0.1:18789/exactly - if remote, tell me whether you're using Tailscale, SSH tunnel, Docker, reverse proxy, or direct LAN IP
Relevant docs:
https://docs.openclaw.ai/web/dashboard
https://docs.openclaw.ai/web/control-ui
https://docs.openclaw.ai/gateway/troubleshooting
not openclaw dashboard.. my own dashboard im talking it use to connect and stream it to my dashboard but after the new update it just stop showing what i was to get
Ah, got it, your custom dashboard, not the built-in one.
Then yes, there were gateway WS/protocol hardening changes that can break older dashboards. The big ones are:
-
Protocol v3 handshake
- server sends
connect.challenge - client must answer with
connect - include
minProtocol: 3andmaxProtocol: 3
- server sends
-
Challenge signing is required now
- clients must sign the nonce in
connect.params.device - older clients that just sent a token can fail or get limited behavior
- clients must sign the nonce in
-
Event stream is scope-gated now
chat,agent, and tool-result style events require at leastoperator.read- if your dashboard connects as
node, or asoperatorwith no read scope, the socket may connect but the stream looks empty
So if your dashboard only reads data, it should usually connect as:
role: "operator"scopes: ["operator.read"]
If it also sends commands/messages, add operator.write.
Can you paste these so I can tell which change hit you?
pnpm openclaw --version
pnpm openclaw gateway status
And from your dashboard side, tell me which one it is:
- socket never connects
- socket connects, but no events stream anymore
- closes with 1008 / unauthorized / pairing required
If you can share a redacted connect payload shape, I can point to the exact fix.
Docs:
https://docs.openclaw.ai/gateway/protocol
https://docs.openclaw.ai/gateway/troubleshooting
The Diagnosis: The Dashboard is "Deaf" to Agents
Look closely at your logs. The server is receiving health events and tick events, but there are zero chat or agent events.
Normally, a healthy OpenClaw Gateway streams a constant flow of event:chat and event:agent frames. In your logs, we only see:
event: health (The Gateway saying "I'm alive").
event: tick (The heartbeat).
The problem is not the Dashboard server; the problem is the Gateway is not sending agent data to the server.
I don’t think that diagnosis is quite right.
If you’re getting only health and tick, that usually means:
- the WebSocket is alive
- but your client is not authorized or not subscribed for conversation events
A healthy gateway does not constantly emit chat/agent events when idle.
What changed recently is that broadcast events got tighter:
chat,agent, and tool-result events now requireoperator.read- pairing-only / node-only / low-scope clients will still see transport events like
tickandhealth - transcript-style updates are session-scoped, so custom clients may also need:
sessions.subscribesessions.messages.subscribe
So for a custom dashboard, check these first:
-
Your WS
connectuses:role: "operator"scopes: ["operator.read"]- add
operator.writetoo if the dashboard sends commands/messages
-
After
hello-ok, confirm the granted scopes actually includeoperator.read -
If you expect per-session updates, subscribe to the session explicitly with:
sessions.subscribesessions.messages.subscribe
If your dashboard is connecting as node, or as operator without operator.read, this exact “deaf dashboard” symptom is expected now.
If you want, paste a redacted version of:
- your
connectpayload
- the
hello-ok.authsection - which event names / subscribe methods your dashboard is using
and I’ll tell you the exact mismatch.
Docs:
https://docs.openclaw.ai/gateway/protocol
https://docs.openclaw.ai/gateway/troubleshooting
i did all of that and notthing still not coming in
{"configured":true,"running":false,"lastStartAt":null,"lastStopAt":null,"lastError":null,"tokenSource":"none","probe":{"ok":true,"status":null,"error":null,"elapsedMs":407,"bot":{"id":8540965352,"username":"AllpreeBot","canJoinGroups":true,"canReadAllGroupMessages":true,"supportsInlineQueries":false},"webhook":{"url":"","hasCustomCert":false}},"lastProbeAt":1777000362113,"mode":null,
[Gateway] EVENT: health | session= | keys=['ok', 'ts', 'durationMs', 'channels', 'channelOrder', 'channelLabels', 'heartbeatSeconds', 'defaultAgentId', 'agents', 'sessions']
[Gateway] EVENT: tick | session= | keys=['ts']
[Gateway] UNKNOWN EVENT: tick | payload_preview={'ts': 1777000389502}
[Gateway] EVENT: presence | session= | keys=['presence']
[Gateway] UNKNOWN EVENT: presence | payload_preview={'presence': [{'host': 'gateway:chat.history', 'version': '2026.4.22', 'platform': 'win32', 'mode': 'backend', 'deviceId': '7d4cf729b909f642c8e1d8658db5a65c7aa8f1666c9c51e0956278a438c7d6a5', 'roles':
[Gateway] RAW USER-RELATED FRAME: {"type":"event","event":"health","payload":{"ok":true,"ts":1777000389813,"durationMs":1018,"channels":{"telegram":{"configured":true,"running":false,"lastStartAt":null,"lastStopAt":null,"lastError":null,"tokenSource":"none","probe":{"ok":true,"status":null,"error":null,"elapsedMs":312,"bot":{"id":8540965352,"username":"AllpreeBot","canJoinGroups":true,"canReadAllGroupMessages":true,"supportsInlineQueries":false},"webhook":{"url":"","hasCustomCert":false}},"lastProbeAt":1777000389813,"mode":null,
[Gateway] EVENT: health | session= | keys=['ok', 'ts', 'durationMs', 'channels', 'channelOrder', 'channelLabels', 'heartbeatSeconds', 'defaultAgentId', 'agents', 'sessions']
Then I think the next likely issue is not auth anymore, it’s the event model your dashboard is listening to.
A custom dashboard that used to passively watch event:agent / event:chat can break after the hardening changes. The safer path now is usually:
- connect as
operatorwithoperator.read - call
sessions.subscribe - call
sessions.list - for each real session key, call:
{"method":"sessions.messages.subscribe","params":{"key":"agent:main:main"}} - listen for:
session.messagesession.toolsessions.changed
If your dashboard is only waiting for agent or chat, it may stay mostly quiet.
Minimal wire test
After connect, do this exact flow:
{"type":"req","id":"1","method":"sessions.subscribe","params":{}}
{"type":"req","id":"2","method":"sessions.list","params":{}}
{"type":"req","id":"3","method":"sessions.messages.subscribe","params":{"key":"<one key from sessions.list>"}}
Then trigger one message in that session.
What you should see:
event: sessions.changedevent: session.message- maybe
event: session.tool
If you still get only tick and health, I need the raw redacted frames for:
connectrequesthello-okresponsesessions.listresponsesessions.messages.subscriberequest/response- one attempted run after subscribing
Also, before we go deeper, paste:
pnpm openclaw --version
My honest guess: your dashboard is still wired for the older broad event flow, and now it needs per-session subscriptions plus session.message/session.tool handling.
Nice, this helps.
A couple important things from that dump:
- that
running:falseblob is from the Telegram channel probe inside thehealthpayload, not the gateway itself tickandpresencearriving means the socket is aliveUNKNOWN EVENT: tick/presencejust means your dashboard parser doesn’t know those newer event names yet
What’s still missing in your logs is the real clue:
- no logged
hello-ok.auth - no
sessions.list - no
sessions.subscribe - no
sessions.messages.subscribe
So I still think the dashboard is connected, but not subscribed to transcript/session events on that connection.
What to do on every reconnect
After WS connect succeeds:
{"type":"req","id":"1","method":"sessions.subscribe","params":{}}
{"type":"req","id":"2","method":"sessions.list","params":{}}
{"type":"req","id":"3","method":"sessions.messages.subscribe","params":{"key":"agent:main:main"}}
Then for every session key from sessions.list, subscribe it.
Also:
- when you get
sessions.changed, re-runsessions.listor subscribe any new key - subscriptions are per connection, so reconnect = re-subscribe everything
One more check
Log the hello-ok payload and confirm it grants:
"role": "operator",
"scopes": ["operator.read"]
If you want, paste these 4 redacted frames next:
connecthello-oksessions.listresponse- one
sessions.messages.subscriberequest/response
And please paste:
pnpm openclaw --version
That should tell us exactly where it’s breaking.
it look like im going to stop these updates because it keep breaking my own setup kmt
That’s honestly fair. If you have a custom dashboard/integration, freezing updates for a bit is a sane move, not overreacting.
My recommendation:
-
Get off beta/dev if you’re on it
pnpm openclaw update --channel stable -
If you need maximum stability, pin a known-good version
pnpm add -g openclaw@<working-version> pnpm openclaw doctor pnpm openclaw gateway restart -
Treat gateway updates like API upgrades for your dashboard
- test first
- then roll forward
- don’t auto-update production blindly
If you want, the safest workflow is:
- one machine/version for your real setup
- one test install for trying updates first
If you paste:
pnpm openclaw update status
pnpm openclaw --version
I can tell you the cleanest “freeze here” path for your install type.
Docs:
https://docs.openclaw.ai/install/updating
https://docs.openclaw.ai/install/development-channels
And yeah, I’d be annoyed too.
i dont know what you talking about..
Yeah, that’s on me, I overcomplicated it.
Simple version:
- Your custom dashboard used to work
- The update changed the gateway connection behavior
- so now your dashboard likely needs a small code update, or you go back to the last version that worked
Easiest next step
Send me just these 2 things:
pnpm openclaw --version
and tell me:
- what language your dashboard is written in (
node,python, etc.)
If you want the fastest fix
Tell me:
- the last OpenClaw version that worked
- whether you want to rollback or fix the dashboard code
If you want, paste the part of your dashboard that connects to the gateway WebSocket, with any token removed, and I’ll tell you exactly what changed.
Background docs, if needed later: https://docs.openclaw.ai/gateway/protocol
im speanding all night a try fix this.. just let me how i can go back the older vs
Yeah, I’d stop fighting it too. Let’s just roll it back.
If you installed with pnpm/npm
Run this:
pnpm add -g openclaw@<last-working-version>
pnpm openclaw doctor
pnpm openclaw gateway restart
pnpm openclaw health
Replace <last-working-version> with the version that worked before.
If you installed from a git checkout
Run this in your OpenClaw repo:
git fetch origin --tags
git checkout v<last-working-version>
pnpm install
pnpm build
pnpm openclaw gateway restart
If you do not know which install type you have
Paste these 2 commands and I’ll tell you the exact rollback command:
pnpm openclaw --version
pnpm openclaw update status
After rollback, just stay pinned there for now and don’t update again until you want to test your dashboard.
i did my install from here powershell -c "irm https://openclaw.ai/install.ps1 | iex" so i dont know how to go back to a older one
Yep, that installer usually does a package install, so rollback is pretty simple.
Easiest rollback on Windows PowerShell
openclaw --version
openclaw update --tag <OLD_VERSION> --yes
openclaw gateway restart
Example:
openclaw update --tag 2026.4.20 --yes
openclaw gateway restart
If openclaw update gives you trouble, use the installer again with a pinned version
& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1))) -Tag 2026.4.20 -NoOnboard
openclaw gateway restart
If you don’t know what old version to use
Paste this:
openclaw --version
openclaw update status
and I’ll tell you the exact rollback command.