Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Bug type: Regression / Behavior bug
Version: 2026.5.12 (f066dd2), Ubuntu 24.04, npm/pnpm install
Summary:
Every async exec completion triggers multiple parallel agent sessions, each delivering the same message to Telegram. The duplication count grows with each test (2x, 5x, 17x, 42x observed in one session).
Behavior:
Ask agent a weather question via Telegram
Agent runs a compound curl command (single exec)
Command succeeds (code 0)
Agent delivers the result 5-42 times to Telegram, each from a different session name (e.g. salty-slug, young-wharf, tender-shore)
Happens on success, failure, and denial equally
Occurs regardless of exec policy (ask=always or ask=on-miss)
Occurs regardless of model (gemini-2.5-flash and gemini-2.5-flash-lite both tested)
Root cause observed:
Each task_delivery_state entry generates a separate session. The async completion prompt says "If the task requires more steps, continue from this result" — each parallel session interprets this as permission to re-run the command.
Evidence from task_runs database:
Multiple rows with different session names but identical output, all created within seconds of each other for a single user request.
Channel: Telegram DM, dmPolicy=allowlist
Workaround: None found. Looping occurs on all outcomes.
Steps to reproduce
- Configure OpenClaw v2026.5.12 with Telegram DM channel, dmPolicy=allowlist
- Set exec policy: ask=on-miss, security=allowlist, askFallback=deny
- Install mh-weather skill
- Send a weather request via Telegram DM: "what's the weather in Chicago?"
- Approve the compound echo/curl command when prompted
- Observe Telegram responses
Expected behavior
Prior to this session the weather skill returned a single response per request. Expected: one Telegram message delivered per exec completion.
Actual behavior
Each exec completion delivers 5-42 duplicate Telegram messages. Each message originates from a different session name (e.g. salty-slug, young-wharf, tender-shore). Duplication occurs on success, failure, and denial equally. Confirmed via task_delivery_state table in tasks/runs.sqlite — multiple rows with different task IDs all delivering to the same Telegram chat ID within seconds of a single user request.
OpenClaw version
2026.5.12 (f066dd2)
Operating system
Ubuntu 24.04,
Install method
npm/pnpm global install, running as systemd service openclaw.service
Model
google/gemini-2.5-flash
Provider / routing chain
Google Gemini API (direct, GEMINI_API_KEY), single gateway host, no proxy
Additional provider/model setup details
Also reproduced with google/gemini-2.5-flash-lite as primary model. Exec policy tested: ask=always and ask=on-miss — both exhibit the same behavior.
Logs, screenshots, and evidence
task_delivery_state entries for a single weather request:
1414a01a — session: salty-slug — 12:23 CDT
bfd3f50c — session: young-wharf — 12:20 CDT
e4e41521 — session: tender-shore — 12:17 CDT
All delivering identical output to telegram:1302610984
journalctl evidence:
[12:44:18] Here's the current weather for Milwaukee: ☀️ +74°F... (repeated 17 times in single log line)
Async completion prompt received by each session:
"If the task requires more steps, continue from this result before replying to the user."
Each parallel session interprets this as permission to re-execute.
Impact and severity
- Affects all Telegram DM users with async exec enabled
- Severity: blocks workflow — every exec-based skill response is duplicated 5-42 times
- Frequency: always reproducible, every weather request
- Consequence: Telegram spam, extra API cost per duplicate LLM turn, unusable for production
Additional information
The duplication count increased during the session (2x → 5x → 17x → 42x), suggesting accumulated pending sessions. /new does not clear the backlog. sudo systemctl restart openclaw.service resets the count temporarily but it grows again. The async completion task prompt "If the task requires more steps, continue from this result" appears to be the trigger — each parallel session acts on it independently.
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
Bug type: Regression / Behavior bug
Version: 2026.5.12 (f066dd2), Ubuntu 24.04, npm/pnpm install
Summary:
Every async exec completion triggers multiple parallel agent sessions, each delivering the same message to Telegram. The duplication count grows with each test (2x, 5x, 17x, 42x observed in one session).
Behavior:
Ask agent a weather question via Telegram
Agent runs a compound curl command (single exec)
Command succeeds (code 0)
Agent delivers the result 5-42 times to Telegram, each from a different session name (e.g. salty-slug, young-wharf, tender-shore)
Happens on success, failure, and denial equally
Occurs regardless of exec policy (ask=always or ask=on-miss)
Occurs regardless of model (gemini-2.5-flash and gemini-2.5-flash-lite both tested)
Root cause observed:
Each task_delivery_state entry generates a separate session. The async completion prompt says "If the task requires more steps, continue from this result" — each parallel session interprets this as permission to re-run the command.
Evidence from task_runs database:
Multiple rows with different session names but identical output, all created within seconds of each other for a single user request.
Channel: Telegram DM, dmPolicy=allowlist
Workaround: None found. Looping occurs on all outcomes.
Steps to reproduce
Expected behavior
Prior to this session the weather skill returned a single response per request. Expected: one Telegram message delivered per exec completion.
Actual behavior
Each exec completion delivers 5-42 duplicate Telegram messages. Each message originates from a different session name (e.g. salty-slug, young-wharf, tender-shore). Duplication occurs on success, failure, and denial equally. Confirmed via task_delivery_state table in tasks/runs.sqlite — multiple rows with different task IDs all delivering to the same Telegram chat ID within seconds of a single user request.
OpenClaw version
2026.5.12 (f066dd2)
Operating system
Ubuntu 24.04,
Install method
npm/pnpm global install, running as systemd service openclaw.service
Model
google/gemini-2.5-flash
Provider / routing chain
Google Gemini API (direct, GEMINI_API_KEY), single gateway host, no proxy
Additional provider/model setup details
Also reproduced with google/gemini-2.5-flash-lite as primary model. Exec policy tested: ask=always and ask=on-miss — both exhibit the same behavior.
Logs, screenshots, and evidence
Impact and severity
Additional information
The duplication count increased during the session (2x → 5x → 17x → 42x), suggesting accumulated pending sessions. /new does not clear the backlog. sudo systemctl restart openclaw.service resets the count temporarily but it grows again. The async completion task prompt "If the task requires more steps, continue from this result" appears to be the trigger — each parallel session acts on it independently.