OpenClaw 4.5 regression: Telegram approval prompts can surface in the wrong DM, leaking host-approval actions across chats
Summary
After upgrading to v2026.4.5, a host approval prompt initiated while investigating Jeffe's Telegram DM surfaced in Sarah's separate Telegram DM. Sarah is allowlisted to chat with the assistant, but she is not the initiator of the command and should not receive approval prompts for work started in Jeffe's DM.
This appears to be a Telegram DM routing/approval-context leak, not just a normal permission check.
Impact
- Host approval prompts can be delivered to the wrong Telegram DM
- A different allowlisted user may see internal diagnostic commands started from another person's conversation
- This is a cross-chat isolation failure, not just a UX issue
- It risks accidental approval/denial by the wrong person
Concrete example
Sarah received an approval prompt for this host diagnostic command:
python3 - <<'PY'
import json
p='/Users/telos/.openclaw/agents/main/sessions/sessions.json'
with open(p) as f:
data=json.load(f)
for k,v in data.items():
if '8439007096' in k or ('origin' in v and ('8439007096' in json.dumps(v.get('origin',{})) or '8439007096' in json.dumps(v.get('deliveryContext',{})))):
print('KEY:', k)
print(json.dumps(v, indent=2)[:6000])
print('---')
PY
Approval id shown to Sarah:
71b2f6a2-77d7-48ee-bec0-d9c33edfcd08
That command was initiated during investigation of Jeffe's DM session, not Sarah's.
Expected behavior
- Approval prompts should only surface in the chat/session that initiated the pending command
- Allowlisted users should not see approvals for commands started from another user's DM
- Approval authority should stay bound to the originating conversation context
Actual behavior
- Approval prompt surfaced in Sarah's DM even though the command belonged to Jeffe's investigation flow
- This occurred despite Sarah not appearing to have an active Telegram DM session entry in
sessions.json
Evidence
Session map evidence
Live sessions.json lookup found Jeffe's Telegram entries, but not Sarah's:
- Found:
agent:main:telegram:direct:8439007096
agent:main:telegram:slash:8439007096
- Not found:
This suggests Sarah's approval prompt did not originate from a normal Sarah-bound session entry.
Runtime behavior
- Jeffe initiated host-level diagnostics in his Telegram DM
- Sarah received the approval prompt for one of those commands
- Gateway/runtime otherwise remained operational
Suspected root cause
Likely one of the following in 4.5 Telegram approval routing:
- approval prompts are using stale Telegram DM reply-target state
- approval prompts are keyed too loosely by channel/account rather than originating chat/session
- direct-message routing is leaking across allowlisted Telegram users when no active session entry exists for the recipient
- approval UI delivery path is using the wrong conversation context after a reset/new-session/remap event
Given the parallel DM instability observed elsewhere in 4.5, this may share root cause with Telegram direct-session state handling.
Why this is serious
This is not just a delayed message problem. It crosses a trust boundary:
- one user can receive operational approval prompts created by another user's session
- the wrong person can see command details and potentially approve or deny them
Suggested repro
- Configure Telegram with multiple allowlisted DM users
- Start a host-approval-requiring diagnostic from Jeffe's DM
- Have another allowlisted Telegram user with prior DM history present in the system
- Trigger approval flow during or after DM reset/remap conditions
- Observe whether approval prompt surfaces in the wrong DM
Suggested fix directions
- Bind approval delivery strictly to originating
sessionKey plus originating chat id
- Refuse fallback delivery of approvals to any other DM when original chat context is missing or stale
- Add logging that records approval id -> originating session key -> delivered chat id
- Add regression tests for multiple allowlisted Telegram DMs with concurrent/pending approvals
- Audit any fallback path that chooses
lastChannel, lastTo, or channel-global state for approval delivery
Environment
- OpenClaw
v2026.4.5
- macOS
- Telegram enabled
- Multiple allowlisted Telegram users
- Approval leak observed across separate Telegram DMs
OpenClaw 4.5 regression: Telegram approval prompts can surface in the wrong DM, leaking host-approval actions across chats
Summary
After upgrading to
v2026.4.5, a host approval prompt initiated while investigating Jeffe's Telegram DM surfaced in Sarah's separate Telegram DM. Sarah is allowlisted to chat with the assistant, but she is not the initiator of the command and should not receive approval prompts for work started in Jeffe's DM.This appears to be a Telegram DM routing/approval-context leak, not just a normal permission check.
Impact
Concrete example
Sarah received an approval prompt for this host diagnostic command:
Approval id shown to Sarah:
71b2f6a2-77d7-48ee-bec0-d9c33edfcd08That command was initiated during investigation of Jeffe's DM session, not Sarah's.
Expected behavior
Actual behavior
sessions.jsonEvidence
Session map evidence
Live
sessions.jsonlookup found Jeffe's Telegram entries, but not Sarah's:agent:main:telegram:direct:8439007096agent:main:telegram:slash:843900709685861269838351575041This suggests Sarah's approval prompt did not originate from a normal Sarah-bound session entry.
Runtime behavior
Suspected root cause
Likely one of the following in 4.5 Telegram approval routing:
Given the parallel DM instability observed elsewhere in 4.5, this may share root cause with Telegram direct-session state handling.
Why this is serious
This is not just a delayed message problem. It crosses a trust boundary:
Suggested repro
Suggested fix directions
sessionKeyplus originating chat idlastChannel,lastTo, or channel-global state for approval deliveryEnvironment
v2026.4.5