-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
Zalo channel rejects valid non-numeric chat_id values for proactive outbound sends #57594
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.
Type
Fields
Priority
None yet
Summary
openclaw message send --channel zalo --target <id>rejects valid Zalo Bot Platformchat_idvalues that are non-numeric (hex-like), even though upstream Zalo Bot API accepts them and delivers successfully.This causes a mismatch where:
Unknown target ... for Zalo. Hint: <chatId>Environment
zalo(Bot API)What I expected
If a user can DM the Zalo bot and OpenClaw can reply in-session, then
openclaw message send --channel zalo --target <chat_id>should also work when given the same valid upstreamchat_id.What happened
OpenClaw rejects the target before send:
Same for another valid Zalo DM target:
Upstream verification
Calling Zalo Bot Platform API directly with the exact same IDs as
chat_idsucceeds:Response:
{"ok":true,"result":{"message_id":"2bd5af23b7f0a4a8fde7","date":1774860400621},"error_code":0}And:
Response:
{"ok":true,"result":{"message_id":"dc595f99474a54120d5d","date":1774860400664},"error_code":0}Using
user_idorconversation_idwith the upstream API failed;chat_idis the required field.Why this seems to be happening
From the built plugin/runtime code, Zalo messaging currently appears to use a target validator that expects numeric-looking IDs:
targetResolver: { looksLikeId: isNumericTargetId, hint: "<chatId>" }But actual Zalo Bot Platform
chat_idvalues can be non-numeric hex-like strings.So OpenClaw seems to reject valid upstream
chat_ids during target validation/resolution.Additional observation
OpenClaw can still reply in-session to incoming Zalo messages, which suggests session-route handling works. The failure seems specific to proactive outbound sends through CLI/script paths that rely on target validation.
Suggested fix
For channel
zalo, relax or replace the target validator so it accepts the realchat_idformat used by Zalo Bot Platform, not only numeric-looking IDs.At minimum, Zalo should accept string
chat_ids like:3becaa50ae12474c1e0349270a5f8f1c66423f0dRepro steps
chat_id=<same-id>Impact
This blocks scheduled alerts / proactive notifications over Zalo from scripts and automations, even though the upstream bot platform supports them.