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

  1. Verify endpoint, region, and credentials for OBS
  2. Check network egress from the service to the endpoint
  3. 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.