Tencent/WeKnora · error
OBS connectivity check failed: %w
Error message
OBS connectivity check failed: %w
What it means
OBS connectivity probe: after passing SSRF endpoint validation, the HeadBucket call (via SSRF-safe HTTP client) failed or was denied within the 10s window, so OBS reachability/credentials could not be confirmed and the check fails with the wrapped cause.
Source
Thrown at internal/application/service/file/obs.go:102
if err := utils.ValidateURLForSSRF(endpoint); err != nil {
return fmt.Errorf("unsafe OBS endpoint: %w", err)
}
checkCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
client := s3.New(s3.Options{
Region: region,
EndpointResolver: &obsEndpointResolver{url: endpoint},
Credentials: credentials.NewStaticCredentialsProvider(accessKey, secretKey, ""),
UsePathStyle: true,
HTTPClient: utils.NewSSRFSafeHTTPClient(utils.DefaultSSRFSafeHTTPClientConfig()),
})
_, err := client.HeadBucket(checkCtx, &s3.HeadBucketInput{
Bucket: aws.String(bucketName),
})
if err != nil {
return fmt.Errorf("OBS connectivity check failed: %w", err)
}
return nil
}
func (s *obsFileService) CheckConnectivity(ctx context.Context) error {
checkCtx, cancel := context.WithTimeout(ctx, 10*time.Second)
defer cancel()
_, err := s.client.HeadBucket(checkCtx, &s3.HeadBucketInput{
Bucket: aws.String(s.bucketName),
})
if err != nil {
return fmt.Errorf("OBS connectivity check failed: %w", err)
}
return nil
}
func (s *obsFileService) parseObsFilePath(filePath string) (string, error) {View on GitHub (pinned to 988cbb0330)
Solutions
- Verify endpoint, region, and credentials for OBS
- Check network egress from the service to the endpoint
- Increase the probe timeout for high-latency links
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at internal/application/service/file/obs.go:102 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/927747ef946a98aa.
Report an issue: GitHub.