chenhg5/cc-connect · error
wecom: write image data: %w
Error message
wecom: write image data: %w
What it means
Wrap of the Write call that copies img.Data into the multipart form part. Writing to a bytes.Buffer cannot fail (only panics on OOM), so this is a defensive wrap around the io.Writer error contract rather than a realistically reachable error path.
Source
Thrown at platform/wecom/wecom.go:557
return nil
}
// uploadImageMedia uploads an image to WeChat Work media API and returns the media_id.
func (p *Platform) uploadImageMedia(accessToken string, img core.ImageAttachment) (string, error) {
name := img.FileName
if name == "" {
name = "image.png"
}
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, err := writer.CreateFormFile("media", name)
if err != nil {
return "", fmt.Errorf("wecom: create form file: %w", err)
}
if _, err := part.Write(img.Data); err != nil {
return "", fmt.Errorf("wecom: write image data: %w", err)
}
if err := writer.Close(); err != nil {
return "", fmt.Errorf("wecom: close multipart writer: %w", err)
}
apiURL := p.wecomAPIURL("/cgi-bin/media/upload", url.Values{
"access_token": []string{accessToken},
"type": []string{"image"},
})
resp, err := p.apiClient.Post(apiURL, writer.FormDataContentType(), body)
if err != nil {
return "", fmt.Errorf("wecom: upload image: %w", err)
}
defer resp.Body.Close()
var result struct {
ErrCode int `json:"errcode"`
ErrMsg string `json:"errmsg"`View on GitHub (pinned to 4000b2338a)
Solutions
- Treat as unreachable defensive code; log and abort the image upload if it ever appears
- No configuration or input change can trigger it under normal memory conditions
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at platform/wecom/wecom.go:557 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/99bf38fc436f3c40.
Report an issue: GitHub.