hermes - 💡(How to fix) Fix fix(feishu): approval buttons broken after v0.15.0 upgrade when no admins configured

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…

Root Cause

Commit history between v2026.5.16 (v0.14.0) and v2026.5.28 (v0.15.0):

CommitDescription
485292ac7Added _allow_group_message() check in _handle_approval_card_action
bdb97b857Added _is_interactive_operator_authorized() check in _resolve_approval

The blocking call is in _handle_approval_card_action (line 2582) which uses _allow_group_message(). When neither admins nor FEISHU_ALLOWED_USERS are configured, the allowlist is empty and everyone is blocked.

Fix Action

Workaround

Add the admin open_id to the feishu config:

platforms:
  feishu:
    extra:
      admins:
        - ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Or set FEISHU_ALLOWED_USERS env var.

Code Example

WARNING gateway.platforms.feishu: [Feishu] Unauthorized approval click by ou_xxxxxxxxxxxx

---

platforms:
  feishu:
    extra:
      admins:
        - ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
RAW_BUFFERClick to expand / collapse

Describe the bug

After upgrading from v0.14.0 to v0.15.0 (or v0.15.1), the Feishu interactive approval buttons (used for /execute command approval) stop responding to clicks. The gateway logs show:

WARNING gateway.platforms.feishu: [Feishu] Unauthorized approval click by ou_xxxxxxxxxxxx

No approval dialog appears; the card briefly flashes a "processing" indicator and silently returns to its prior state.

Root Cause

Commit history between v2026.5.16 (v0.14.0) and v2026.5.28 (v0.15.0):

CommitDescription
485292ac7Added _allow_group_message() check in _handle_approval_card_action
bdb97b857Added _is_interactive_operator_authorized() check in _resolve_approval

The blocking call is in _handle_approval_card_action (line 2582) which uses _allow_group_message(). When neither admins nor FEISHU_ALLOWED_USERS are configured, the allowlist is empty and everyone is blocked.

Inconsistency

The same class has two authorization functions with opposite defaults for the unconfigured state:

  • _is_interactive_operator_authorized returns True (allows everyone) when no admins configured
  • _allow_group_message returns False (blocks everyone) when policy=allowlist and no users configured

Other card-action handlers use _is_interactive_operator_authorized. The approval button is the odd one out.

Suggested fix

Option A — Replace _allow_group_message with _is_interactive_operator_authorized in _handle_approval_card_action, consistent with other card handlers.

Option B — Make _allow_group_message fall back to "open" policy when both _admins and _allowed_group_users are empty.

Workaround

Add the admin open_id to the feishu config:

platforms:
  feishu:
    extra:
      admins:
        - ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Or set FEISHU_ALLOWED_USERS env var.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix fix(feishu): approval buttons broken after v0.15.0 upgrade when no admins configured