chenhg5/cc-connect · error
%s: get message failed code=%d msg=%s
Error message
%s: get message failed code=%d msg=%s
What it means
A Feishu GetMessage API call succeeded at transport level but returned an application error (non-zero code from Lark), after transient-retry and token-refresh retries were exhausted. Embeds the Lark code and message; commonly means the message_id is invalid/deleted or the bot lacks read permission.
Source
Thrown at platform/feishu/feishu.go:1148
if p.client == nil {
return false, fmt.Errorf("%s: client not initialized", p.tag())
}
req := larkim.NewGetMessageReqBuilder().
MessageId(messageID).
UserIdType(larkim.UserIdTypeGetMessageOpenId).
Build()
var resp *larkim.GetMessageResp
if err := p.withTransientRetry(ctx, "get message", func() error {
return p.withFreshTenantAccessTokenRetry(ctx, "get message", func(client *lark.Client, options ...larkcore.RequestOptionFunc) error {
var err error
resp, err = client.Im.Message.Get(ctx, req, options...)
if err != nil {
return fmt.Errorf("%s: get message api call: %w", p.tag(), err)
}
if !resp.Success() {
return fmt.Errorf("%s: get message failed code=%d msg=%s", p.tag(), resp.Code, resp.Msg)
}
return nil
})
}); err != nil {
if resp != nil && isMessageWithdrawnCode(resp.Code, resp.Msg) {
p.markMessageRecalled(messageID)
return true, nil
}
if isMessageWithdrawnError(err) {
p.markMessageRecalled(messageID)
return true, nil
}
return false, err
}
if resp == nil || resp.Data == nil || len(resp.Data.Items) == 0 {
p.markMessageRecalled(messageID)
return true, nilView on GitHub (pinned to 4000b2338a)
Solutions
- Check the bot has im:message:readonly scope
- Treat 'message not found' as already-recalled where applicable
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at platform/feishu/feishu.go:1148 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of chenhg5/cc-connect@4000b2338a (2026-09-06).
Data as JSON: /api/errors/bb002c723a44c12d.
Report an issue: GitHub.