openclaw - ✅(Solved) Fix [Bug]: Telegram exec approval delivery does not respect `channels.telegram.execApprovals.target` (regression from 2026.3.31 to 2026.4.1) [1 pull requests, 4 comments, 3 participants]

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…
GitHub stats
openclaw/openclaw#59620Fetched 2026-04-08 02:42:26
View on GitHub
Comments
4
Participants
3
Timeline
21
Reactions
0
Author
Timeline (top)
referenced ×7commented ×4cross-referenced ×2labeled ×2

Telegram exec approval delivery does not respect channels.telegram.execApprovals.target: with both, approvals are not delivered to both destinations, and with channel, approvals are still not delivered to Telegram. This regressed after upgrading from 2026.3.31 to 2026.4.1.

Root Cause

Telegram exec approval delivery does not respect channels.telegram.execApprovals.target: with both, approvals are not delivered to both destinations, and with channel, approvals are still not delivered to Telegram. This regressed after upgrading from 2026.3.31 to 2026.4.1.

Fix Action

Fixed

PR fix notes

PR #59776: fix: decouple approval availability from native delivery enablement

Description (problem / solution / changelog)

Summary

Fixes #59620.

getActionAvailabilityState in createApproverRestrictedNativeApprovalAdapter was gating on both hasApprovers and isNativeDeliveryEnabled. This caused Telegram exec approvals to report "approvals not allowed on this platform" when channels.telegram.execApprovals.target was configured (e.g. "dm", "channel", or "both") but execApprovals.enabled was not explicitly true.

Root cause

The regression was introduced in v2026.4.1 during the approval capability refactor. The availability check should only depend on whether approvers exist — native delivery mode (dm/channel/both) is a routing concern handled downstream in resolveChannelNativeApprovalDeliveryPlan, not a gating condition for the approval surface itself.

Changes

  • src/plugin-sdk/approval-delivery-helpers.ts: Remove the isNativeDeliveryEnabled guard from getActionAvailabilityState so the approval surface reports kind: "enabled" whenever approvers are configured, regardless of the native delivery toggle.
  • src/plugin-sdk/approval-delivery-helpers.test.ts: Add a dedicated regression test that validates getActionAvailabilityState returns kind: "enabled" when approvers exist but native delivery is off, and update the existing assertion that was masking the bug.

Test plan

  • npx vitest run src/plugin-sdk/approval-delivery-helpers.test.ts — 5/5 pass (including new regression test)
  • npx vitest run src/infra/exec-approval-surface.test.ts — 11/11 pass
  • npx vitest run src/infra/approval-turn-source.test.ts — 3/3 pass
  • Oxlint clean on both changed files

Joel Nishanth · offlyn.AI

Made with Cursor

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • extensions/discord/src/approval-native.test.ts (modified, +41/-0)
  • extensions/slack/src/approval-native.test.ts (modified, +43/-0)
  • src/plugin-sdk/approval-delivery-helpers.test.ts (modified, +25/-1)
  • src/plugin-sdk/approval-delivery-helpers.ts (modified, +1/-1)
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Telegram exec approval delivery does not respect channels.telegram.execApprovals.target: with both, approvals are not delivered to both destinations, and with channel, approvals are still not delivered to Telegram. This regressed after upgrading from 2026.3.31 to 2026.4.1.

Steps to reproduce

  1. Run OpenClaw 2026.4.1 with Telegram enabled and working for normal DM messages.
  2. Keep Control UI/webchat open.
  3. Set channels.telegram.execApprovals.target to both.
  4. From Telegram DM, trigger a command that requires exec approval.
  5. Observe that the approval appears in Control UI/webchat, while Telegram does not receive the expected approval delivery.
  6. Change channels.telegram.execApprovals.target to channel and repeat.
  7. Observe that the approval still appears in Control UI/webchat instead of Telegram.

Expected behavior

Approval delivery should follow channels.telegram.execApprovals.target.

  • With both, the approval should be delivered to both destinations.
  • With channel, an approval triggered from Telegram DM should be delivered to Telegram.

Actual behavior

Approval delivery does not match the config.

  • With both, the approval is not delivered to both places; in practice it surfaces in Control UI/webchat only.
  • With channel, the approval still surfaces in Control UI/webchat instead of Telegram.
  • Telegram receives only a message indicating that approvals are not allowed there, instead of the actual approval prompt.

OpenClaw version

2026.4.1

Operating system

Ubuntu 24.04.4 LTS (Noble Numbat)

Install method

One-liner from oficical landing page (npm)

Model

gpt-5.4/openai-codex

Provider / routing chain

Telegram -> local OpenClaw gateway -> main agent -> gateway exec approvals

Additional provider/model setup details

No response

Logs, screenshots, and evidence

Impact and severity

No response

Additional information

#16184 — exec approval messages not being forwarded to Telegram despite correct configuration

extent analysis

TL;DR

Check the configuration and implementation of channels.telegram.execApprovals.target to ensure it correctly handles approval delivery to both Control UI/webchat and Telegram.

Guidance

  • Review the upgrade changes from 2026.3.31 to 2026.4.1 to identify potential regressions in the channels.telegram.execApprovals.target functionality.
  • Verify that the channels.telegram.execApprovals.target configuration is correctly set to both or channel and that the approval delivery logic is implemented accordingly.
  • Investigate the Telegram integration and approval delivery mechanism to ensure it is working as expected and not overridden by other configurations.
  • Check the issue tracker, specifically #16184, for potential solutions or workarounds related to exec approval messages not being forwarded to Telegram.

Example

No specific code snippet can be provided without more information on the implementation details.

Notes

The issue seems to be related to a regression introduced in the 2026.4.1 version, and the fix might involve reverting or modifying the changes made in this version.

Recommendation

Apply a workaround by downgrading to version 2026.3.31, where the functionality was working as expected, until a proper fix is available for the 2026.4.1 version.

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

Approval delivery should follow channels.telegram.execApprovals.target.

  • With both, the approval should be delivered to both destinations.
  • With channel, an approval triggered from Telegram DM should be delivered to Telegram.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING