chenhg5/cc-connect · error
%s: build image message: %w
Error message
%s: build image message: %w
What it means
SendImage uploaded the image and obtained an imageKey, but serializing the larkim.MessageImage content to JSON failed. Wraps the serialization error before the message send; indicates an SDK-side marshaling problem, not a network issue.
Source
Thrown at platform/feishu/feishu.go:3275
if p.shouldUseThreadOrReplyAPI(rc) {
return p.replyMessage(ctx, rc, larkim.MsgTypeInteractive, cardJSON)
}
return p.sendNewMessageToChat(ctx, rc, larkim.MsgTypeInteractive, cardJSON)
}
func (p *Platform) SendImage(ctx context.Context, rctx any, img core.ImageAttachment) error {
rc, ok := rctx.(replyContext)
if !ok {
return fmt.Errorf("%s: SendImage: invalid reply context type %T", p.tag(), rctx)
}
imageKey, err := p.uploadImageKey(ctx, img.Data)
if err != nil {
return err
}
imageContent, err := (&larkim.MessageImage{ImageKey: imageKey}).String()
if err != nil {
return fmt.Errorf("%s: build image message: %w", p.tag(), err)
}
return p.sendMediaMessage(ctx, rc, larkim.MsgTypeImage, imageContent)
}
func (p *Platform) uploadImageKey(ctx context.Context, data []byte) (string, error) {
var uploadResp *larkim.CreateImageResp
if err := p.withTransientRetry(ctx, "upload image", func() error {
return p.withFreshTenantAccessTokenRetry(ctx, "upload image", func(client *lark.Client, options ...larkcore.RequestOptionFunc) error {
req := larkim.NewCreateImageReqBuilder().
Body(larkim.NewCreateImageReqBodyBuilder().
ImageType("message").
Image(bytes.NewReader(data)).
Build()).
Build()
var err error
uploadResp, err = client.Im.Image.Create(ctx, req, options...)
if err != nil {View on GitHub (pinned to 4000b2338a)
Solutions
- Retry; verify the returned image_key is well-formed
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at platform/feishu/feishu.go:3275 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/a8e009d20d2bf426.
Report an issue: GitHub.