openclaw - 💡(How to fix) Fix [Bug]: Control UI session picker lists sessions from all agents because sessions.list is called without agentId in v2026.5.22 [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

In Control UI Chat, the session picker shows sessions from all configured agents even when a specific agent is selected.

The backend sessions.list RPC appears to support agent filtering correctly, but the Control UI seems to load session picker data without passing the currently selected agentId.

Root Cause

Control UI Chat using model gpt-5. The issue appears unrelated to the model provider, because it happens in the session picker before sending a message.

Fix Action

Fixed

Code Example

openclaw gateway

### Expected behavior

When a specific agent is selected in Control UI Chat, the session picker should only show sessions that belong to the selected agent.

For example, when the selected agent is `main`, the picker should only show sessions such as:

- `agent:main:main`
- `agent:main:cron:...`
- `agent:main:dashboard:...`

It should not show sessions from other agents such as `stockclaw`, `printclaw`, `fileclaw`, or `boardgame`.

This matches the documented behavior that the session picker is scoped by the selected agent.

### Actual behavior

In OpenClaw 2026.5.22, the Control UI Chat session picker shows sessions from all configured agents, even when the selected agent is `main`.

Observed session picker entries include:

- `agent:main:main`
- `agent:stockclaw:main`
- `agent:main:cron:...`
- `agent:main:dashboard:...`
- `agent:printclaw:main`
- `agent:fileclaw:dashboard:...`
- `agent:fileclaw:main`
- `agent:boardgame:dashboard:...`
- `agent:boardgame:main`
- `agent:boardgame:telegram:...`

Frontend observation:

- Selected agent: `main`
- Current session key: `agent:main:main`
- `sessionsResultCount`: 18
- Agents present in `sessionsResult`: `main`, `stockclaw`, `printclaw`, `fileclaw`, `boardgame`
- `chatSessionPickerResult`: null

Gateway RPC behavior:

- `sessions.list` without `agentId` returns 18 sessions from all agents.
- `sessions.list` with `agentId: "main"` returns 7 sessions, all belonging to `main`.
- `sessions.list` with `agentId: "fileclaw"` returns 5 sessions, all belonging to `fileclaw`.

This suggests the backend filtering works correctly, but the Control UI appears to call `sessions.list` without passing the currently selected `agentId`, or it does not apply client-side filtering before rendering the picker.

### OpenClaw version

2026.5.22

### Operating system

macOS 26.4.1

### Install method

_No response_

### Model

GPT5.5

### Provider / routing chain

Control UI Chat using model `gpt-5`. The issue appears unrelated to the model provider, because it happens in the session picker before sending a message.

### Additional provider/model setup details

_No response_

### Logs, screenshots, and evidence
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

Bug type

Behavior bug / Control UI frontend

OpenClaw version

2026.5.22

Operating system

macOS, native install

Summary

In Control UI Chat, the session picker shows sessions from all configured agents even when a specific agent is selected.

The backend sessions.list RPC appears to support agent filtering correctly, but the Control UI seems to load session picker data without passing the currently selected agentId.

Expected behavior

When the selected agent is main, the session picker should only show sessions belonging to main.

For example:

  • agent:main:main
  • agent:main:cron:...
  • agent:main:dashboard:...

It should not show sessions from other agents such as stockclaw, printclaw, fileclaw, or boardgame.

Actual behavior

With selected agent main, the session picker shows sessions from multiple agents:

  • agent:main:main
  • agent:stockclaw:main
  • agent:main:cron:...
  • agent:main:dashboard:...
  • agent:printclaw:main
  • agent:fileclaw:dashboard:...
  • agent:fileclaw:main
  • agent:boardgame:dashboard:...
  • agent:boardgame:main
  • agent:boardgame:telegram:...

This makes it easy to accidentally select or send messages to the wrong agent/session.

Reproduction steps

  1. Configure multiple agents, for example:
    • main
    • stockclaw
    • printclaw
    • fileclaw
    • boardgame
  2. Open Control UI at http://127.0.0.1:18789/
  3. Go to Chat.
  4. Select agent main.
  5. Open the session picker.
  6. Observe that sessions from other agents are shown.

Observed frontend state

  • Selected agent: main
  • Current session key: agent:main:main
  • sessionsResultCount: 18
  • Agents present in sessionsResult:
    • main
    • stockclaw
    • printclaw
    • fileclaw
    • boardgame
  • chatSessionPickerResult: null

This suggests the picker is using the currently loaded sessionsResult, not an agent-filtered picker result.

RPC behavior

Gateway RPC filtering works correctly:

  • sessions.list without agentId returns 18 sessions from all agents.
  • sessions.list with agentId: "main" returns 7 sessions, all belonging to main.
  • sessions.list with agentId: "fileclaw" returns 5 sessions, all belonging to fileclaw.

Suspected cause

Control UI appears to call sessions.list without passing the currently selected agentId, or it fails to apply client-side filtering before rendering the session picker.

The backend seems to support filtering correctly, so this appears to be a Control UI frontend issue.

Related issues

This may be related to:

  • #78983
  • #64121

However, this report specifically confirms that backend sessions.list supports agentId filtering and that the issue appears to be in how Control UI loads or renders session picker data.

Impact

Medium.

Users with multiple agents can easily select the wrong session or accidentally switch to another agent's session. This is especially confusing when using dedicated agents for different roles, such as system administration, stock analysis, file management, or Telegram sessions.

Steps to reproduce

  1. Install or update to OpenClaw 2026.5.22.

  2. Configure multiple agents, for example:

    • main
    • stockclaw
    • printclaw
    • fileclaw
    • boardgame
  3. Start the Gateway and open the Control UI:

    openclaw gateway

Expected behavior

When a specific agent is selected in Control UI Chat, the session picker should only show sessions that belong to the selected agent.

For example, when the selected agent is main, the picker should only show sessions such as:

  • agent:main:main
  • agent:main:cron:...
  • agent:main:dashboard:...

It should not show sessions from other agents such as stockclaw, printclaw, fileclaw, or boardgame.

This matches the documented behavior that the session picker is scoped by the selected agent.

Actual behavior

In OpenClaw 2026.5.22, the Control UI Chat session picker shows sessions from all configured agents, even when the selected agent is main.

Observed session picker entries include:

  • agent:main:main
  • agent:stockclaw:main
  • agent:main:cron:...
  • agent:main:dashboard:...
  • agent:printclaw:main
  • agent:fileclaw:dashboard:...
  • agent:fileclaw:main
  • agent:boardgame:dashboard:...
  • agent:boardgame:main
  • agent:boardgame:telegram:...

Frontend observation:

  • Selected agent: main
  • Current session key: agent:main:main
  • sessionsResultCount: 18
  • Agents present in sessionsResult: main, stockclaw, printclaw, fileclaw, boardgame
  • chatSessionPickerResult: null

Gateway RPC behavior:

  • sessions.list without agentId returns 18 sessions from all agents.
  • sessions.list with agentId: "main" returns 7 sessions, all belonging to main.
  • sessions.list with agentId: "fileclaw" returns 5 sessions, all belonging to fileclaw.

This suggests the backend filtering works correctly, but the Control UI appears to call sessions.list without passing the currently selected agentId, or it does not apply client-side filtering before rendering the picker.

OpenClaw version

2026.5.22

Operating system

macOS 26.4.1

Install method

No response

Model

GPT5.5

Provider / routing chain

Control UI Chat using model gpt-5. The issue appears unrelated to the model provider, because it happens in the session picker before sending a message.

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

No response

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

When a specific agent is selected in Control UI Chat, the session picker should only show sessions that belong to the selected agent.

For example, when the selected agent is main, the picker should only show sessions such as:

  • agent:main:main
  • agent:main:cron:...
  • agent:main:dashboard:...

It should not show sessions from other agents such as stockclaw, printclaw, fileclaw, or boardgame.

This matches the documented behavior that the session picker is scoped by the selected agent.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: Control UI session picker lists sessions from all agents because sessions.list is called without agentId in v2026.5.22 [1 pull requests]