chenhg5/cc-connect · error
empty URL
Error message
empty URL
What it means
Validation guard in downloadSlackFile: the private file URL argument is empty, so there is nothing to fetch; callers must extract a url_private field from the Slack file object before downloading.
Source
Thrown at platform/slack/slack.go:564
_, err := p.client.UploadFileV2Context(ctx, slack.UploadFileV2Parameters{
Reader: bytes.NewReader(file.Data),
FileSize: len(file.Data),
Filename: name,
Channel: rc.channel,
ThreadTimestamp: rc.timestamp,
})
if err != nil {
return fmt.Errorf("slack: send file: %w", err)
}
return nil
}
var _ core.FileSender = (*Platform)(nil)
func (p *Platform) downloadSlackFile(url string) ([]byte, error) {
if url == "" {
return nil, fmt.Errorf("empty URL")
}
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("Authorization", "Bearer "+p.botToken)
resp, err := core.HTTPClient.Do(req)
if err != nil {
return nil, fmt.Errorf("%s", core.RedactToken(err.Error(), p.botToken))
}
defer resp.Body.Close()
// Check if we got an unexpected status code (e.g., redirect to login page)
if resp.StatusCode != http.StatusOK {
body, _ := io.ReadAll(io.LimitReader(resp.Body, 1024))
return nil, fmt.Errorf("download failed with status %d: %s", resp.StatusCode, string(body))
}
data, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("read response body: %w", err)View on GitHub (pinned to 4000b2338a)
Solutions
- Check the file share event fields (url_private_download)
- Skip attachment processing when no URL is present
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at platform/slack/slack.go:564 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/0cc89c8222e197ee.
Report an issue: GitHub.