chenhg5/cc-connect · error
slack: SendImage: invalid reply context type %T
Error message
slack: SendImage: invalid reply context type %T
What it means
Type-assertion guard in Slack SendImage: rctx is not the platform's internal replyContext struct, so the target channel/thread for the upload cannot be determined.
Source
Thrown at platform/slack/slack.go:498
opts := []slack.MsgOption{
slack.MsgOptionText(core.MarkdownToSlackMrkdwn(content), false),
}
if rc.timestamp != "" {
opts = append(opts, slack.MsgOptionPostMessageParameters(slack.PostMessageParameters{ThreadTimestamp: rc.timestamp}))
}
_, _, err := p.client.PostMessageContext(ctx, rc.channel, opts...)
if err != nil {
return fmt.Errorf("slack: send: %w", err)
}
return nil
}
// SendImage uploads and sends an image to the channel.
// Implements core.ImageSender.
func (p *Platform) SendImage(ctx context.Context, rctx any, img core.ImageAttachment) error {
rc, ok := rctx.(replyContext)
if !ok {
return fmt.Errorf("slack: SendImage: invalid reply context type %T", rctx)
}
name := img.FileName
if name == "" {
name = "image.png"
}
_, err := p.client.UploadFileV2Context(ctx, slack.UploadFileV2Parameters{
Reader: bytes.NewReader(img.Data),
FileSize: len(img.Data),
Filename: name,
Channel: rc.channel,
ThreadTimestamp: rc.timestamp,
})
if err != nil {
return fmt.Errorf("slack: send image: %w", err)
}
return nilView on GitHub (pinned to 4000b2338a)
Solutions
- Pass a Slack-produced reply context
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at platform/slack/slack.go:498 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/35ab7d8d337789e3.
Report an issue: GitHub.