Tencent/WeKnora · error
failed to check OSS bucket: %w
Error message
failed to check OSS bucket: %w
What it means
OSS bucket bootstrap: IsBucketExist errored while checking the configured bucket (credentials, endpoint, or network failure), so bucket existence cannot be determined and ensure/create cannot proceed.
Source
Thrown at internal/application/service/file/oss.go:55
if err := utils.ValidateURLForSSRF(endpoint); err != nil {
return nil, fmt.Errorf("unsafe OSS endpoint: %w", err)
}
creds := credentials.NewStaticCredentialsProvider(accessKey, secretKey, "")
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(creds).
WithRegion(region).
WithEndpoint(endpoint).
WithHttpClient(utils.NewSSRFSafeHTTPClient(utils.DefaultSSRFSafeHTTPClientConfig()))
return oss.NewClient(cfg), nil
}
// ossEnsureBucket checks if the bucket exists and creates it if missing.
func ossEnsureBucket(client *oss.Client, bucketName string) error {
exists, err := client.IsBucketExist(context.Background(), bucketName)
if err != nil {
return fmt.Errorf("failed to check OSS bucket: %w", err)
}
if exists {
return nil
}
_, err = client.PutBucket(context.Background(), &oss.PutBucketRequest{
Bucket: oss.Ptr(bucketName),
})
if err != nil {
var svcErr *oss.ServiceError
if errors.As(err, &svcErr) && svcErr.StatusCode == http.StatusConflict {
return nil
}
return fmt.Errorf("failed to create OSS bucket: %w", err)
}
return nil
}
View on GitHub (pinned to 988cbb0330)
Solutions
- Verify OSS endpoint, region, and credentials
- Check network egress to the OSS endpoint
- Retry the existence check on transient errors
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at internal/application/service/file/oss.go:55 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Tencent/WeKnora@988cbb0330 (2026-09-02).
Data as JSON: /api/errors/fd4dea280da66b88.
Report an issue: GitHub.