openclaw - 💡(How to fix) Fix [Bug] Feishu card action callback causes streaming reply to fail with Invalid open_message_id [1 comments, 2 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#56818Fetched 2026-04-08 01:47:28
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Timeline (top)
commented ×1mentioned ×1subscribed ×1

Error Message

code: 99992354
msg: The request you send is not a valid {open_message_id} or not exists
Invalid ids: [card-action-c-xxx]
feishu: streaming start failed: AxiosError: Request failed with status code 400

Root Cause

The card callback event contains an open_message_id of the form card-action-c-xxx, which is a temporary ID for this click event, not the original message ID.

OpenClaw uses this temporary ID to call the Feishu streaming reply API, which rejects it.

Fix Action

Workaround

Disable streaming reply for Feishu channel, or avoid producing replies in card callback scenarios.

Code Example

code: 99992354
msg: The request you send is not a valid {open_message_id} or not exists
Invalid ids: [card-action-c-xxx]

---

feishu: streaming start failed: AxiosError: Request failed with status code 400
RAW_BUFFERClick to expand / collapse

Problem

When a Feishu interactive card button is clicked and the agent produces a reply, the streaming reply API fails.

Error

code: 99992354
msg: The request you send is not a valid {open_message_id} or not exists
Invalid ids: [card-action-c-xxx]
feishu: streaming start failed: AxiosError: Request failed with status code 400

Root Cause

The card callback event contains an open_message_id of the form card-action-c-xxx, which is a temporary ID for this click event, not the original message ID.

OpenClaw uses this temporary ID to call the Feishu streaming reply API, which rejects it.

Intermittent Behavior

  • When agent produces no reply → no API call → no error
  • When agent produces a reply → API call with invalid ID → error

Expected Behavior

Option A: Extract the original message ID from context.open_message_id Option B: Send a new message using receive_id instead of reply

Workaround

Disable streaming reply for Feishu channel, or avoid producing replies in card callback scenarios.

Environment

  • OpenClaw: latest
  • Node.js: v23.10.0

extent analysis

Fix Plan

To resolve the issue, we will implement Option A: Extract the original message ID from context.open_message_id.

Here are the concrete steps:

  • Identify the context.open_message_id format and extract the original message ID.
  • Update the Feishu streaming reply API call to use the extracted original message ID.

Example code snippet:

// Assuming context.open_message_id is in the format 'card-action-c-xxx'
const originalMessageId = context.open_message_id.replace('card-action-c-', '');

// Update the API call to use the original message ID
const apiUrl = `https://open.feishu.cn/open-apis/message/v4/send/${originalMessageId}`;
axios.post(apiUrl, {
  // API request body
});

Alternatively, for Option B, you can send a new message using receive_id:

const apiUrl = `https://open.feishu.cn/open-apis/message/v4/send/${receiveId}`;
axios.post(apiUrl, {
  // API request body
});

Verification

To verify the fix, test the Feishu interactive card button click scenario and check that the streaming reply API call is successful. Monitor the API response for any errors and verify that the reply is sent correctly.

Extra Tips

  • Ensure that the context.open_message_id format is consistent and the extraction logic is correct.
  • Handle any potential errors or edge cases when extracting the original message ID or sending the new message.

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