openclaw - 💡(How to fix) Fix [Bug] Feishu reaction returns HTTP 400 - emoji reaction fails while text send works [1 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#69979Fetched 2026-04-23 07:30:45
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0

Feishu channel 的普通文本消息发送功能正常,但 reaction(表情反应)功能异常,调用返回 HTTP 400 错误。


Error Message

Request failed with status code 400

Root Cause

Feishu channel 的普通文本消息发送功能正常,但 reaction(表情反应)功能异常,调用返回 HTTP 400 错误。


Fix Action

Fix / Workaround

  • Severity: Low (workaround exists: use plain text messages instead of reactions)
  • Workaround: Send emoji as regular text messages
  • User Experience: Minor - users can still express reactions via text, but native reaction feature is unavailable

Code Example

message action=send target="user:[REDACTED]" content="👍"

---

message action=send target="user:[REDACTED]" content="👍"

---

message action=react messageId="om_x100b51b0e08ec4a4b3016b094e8a601" emoji="👍"

---

Request failed with status code 400

---

Runtime: agent=main | host=VM-0-7-opencloudos | model=kimi/k2p5
Gateway: ws://127.0.0.1:18789 (loopback-only)
Feishu Config: Multiple channels configured (telegram, feishu)
RAW_BUFFERClick to expand / collapse

OpenClaw Feishu Reaction Bug Report

Reporter: 林森松 (Feishu user: [REDACTED])
Date: 2026-04-22
OpenClaw Version: 2026.4.10
Node.js Version: v24.14.0
OS: Linux 6.6.117-45.1.oc9.x86_64 (OpenCloudOS 9.4)
Channel: Feishu (飞书)
Chat Type: Direct Message (p2p)


Summary

Feishu channel 的普通文本消息发送功能正常,但 reaction(表情反应)功能异常,调用返回 HTTP 400 错误。


Reproduction Steps

Step 1: Send plain text message (SUCCESS)

message action=send target="user:[REDACTED]" content="👍"

Result: ✅ Success, messageId returned: om_x100b51b0e08ec4a4b3016b094e8a601

Step 2: Send another plain text message (SUCCESS)

message action=send target="user:[REDACTED]" content="👍"

Result: ✅ Success, messageId returned: om_x100b51b0e08ec4a4b3016b094e8a601

Step 3: Add reaction to previous message (FAILURE)

message action=react messageId="om_x100b51b0e08ec4a4b3016b094e8a601" emoji="👍"

Result: ❌ Failed with HTTP 400


Error Details

Error Message

Request failed with status code 400

Context

  • messageId is present and valid (confirmed from previous send)
  • Not a "missing messageId" error (that was an earlier issue, now resolved)
  • The failure occurs at the Feishu API level, not in OpenClaw parameter validation

Control Experiments

Test CaseActionResultNotes
Text sendmessage action=send content="👍"✅ SuccessNormal message delivery works
Text send againmessage action=send content="👍"✅ SuccessConfirms consistency
Reactionmessage action=react emoji="👍"❌ 400 ErrorThis is the bug

Conclusion: The issue is isolated to the reaction-specific code path in the Feishu channel implementation.


Likely Causes (Hypotheses)

1. Incorrect Feishu API Endpoint

OpenClaw may be calling the wrong endpoint for reactions. Feishu has separate APIs for:

  • Sending messages
  • Adding reactions/emoji
  • The endpoint URL or HTTP method may be incorrect

2. Emoji Format Mismatch

The emoji parameter "👍" may need special formatting:

  • Feishu might require Unicode escape sequences instead of raw emoji
  • May need to use Feishu's internal emoji codes/IDs
  • May require base64 encoding or other transformation

3. Message Type Restriction

The target message (sent by bot in p2p chat) may not support reactions:

  • Bot messages in direct chats may have different reaction permissions
  • Feishu may restrict reactions on certain message types

4. Token Scope/Permission

The bot/app token may lack reaction permissions:

  • "Send messages" permission ≠ "Add reactions" permission
  • Feishu app settings may need explicit reaction scope enabled

Environment Information

Runtime: agent=main | host=VM-0-7-opencloudos | model=kimi/k2p5
Gateway: ws://127.0.0.1:18789 (loopback-only)
Feishu Config: Multiple channels configured (telegram, feishu)

Suggested Next Steps for Developers

  1. Check Feishu adapter code for reaction implementation:

    • Which endpoint is being called?
    • What is the request body format?
    • How is emoji being encoded?
  2. Compare with Feishu API documentation:

    • Correct endpoint for adding reactions
    • Required parameters and their formats
    • Permission/scopes needed
  3. Add detailed error logging:

    • Log full HTTP response body from Feishu API
    • Include error code, message, and log_id from Feishu
    • This will pinpoint the exact failure reason
  4. Test with different emoji formats:

    • Raw emoji: "👍"
    • Unicode escape: "\uD83D\uDC4D"
    • Feishu emoji code (if available)

Impact

  • Severity: Low (workaround exists: use plain text messages instead of reactions)
  • Workaround: Send emoji as regular text messages
  • User Experience: Minor - users can still express reactions via text, but native reaction feature is unavailable

Related Issues

  • Earlier issue: Feishu reaction requires messageId - RESOLVED (messageId is now properly passed)
  • Current issue: Request failed with status code 400 - ACTIVE

Report generated by OpenClaw agent for user 林森松

extent analysis

TL;DR

The most likely fix for the Feishu reaction bug is to correct the Feishu API endpoint or request format for adding reactions, potentially involving proper emoji encoding or permission adjustments.

Guidance

  1. Verify the Feishu API endpoint: Ensure that the OpenClaw Feishu adapter is calling the correct endpoint for adding reactions, as specified in the Feishu API documentation.
  2. Check emoji formatting: Test using different emoji formats such as raw emoji, Unicode escape sequences, or Feishu's internal emoji codes/IDs to see if the issue is related to how the emoji is encoded.
  3. Review permission settings: Confirm that the bot/app token has the necessary permissions to add reactions, as "send messages" and "add reactions" might be separate permissions.
  4. Enable detailed error logging: Log the full HTTP response body from the Feishu API to get more specific error details that can help pinpoint the issue.

Example

No specific code example can be provided without knowing the exact implementation details of the OpenClaw Feishu adapter. However, an example of how to log the full HTTP response body in Node.js might look like:

const axios = require('axios');

axios.post('https://example.feishu.cn/api/v3/message/react', {
  // reaction data
})
.then(response => {
  console.log(response.data); // Log the full response body
})
.catch(error => {
  if (error.response) {
    console.log(error.response.data); // Log error response body
  }
});

Notes

The solution may depend on the specifics of the Feishu API and how OpenClaw interacts with it. The steps provided are based on the hypotheses given in the issue report and may need adjustment based on further investigation.

Recommendation

Apply a workaround by sending emoji as regular text messages until the root cause is identified and fixed, as the severity of the issue is low and a workaround exists.

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

openclaw - 💡(How to fix) Fix [Bug] Feishu reaction returns HTTP 400 - emoji reaction fails while text send works [1 participants]