Tencent/WeKnora · error

failed to generate presigned URL: %w

Error message

failed to generate presigned URL: %w

What it means

MinIO PresignedGetObject failed while generating a time-limited download URL for the parsed object key, meaning no URL can be issued; credential signing problems or connectivity are typical wrapped causes.

Source

Thrown at internal/application/service/file/minio.go:232

	_, err = s.client.PutObject(ctx, s.bucketName, objectName, reader, int64(len(data)), minio.PutObjectOptions{
		ContentType: utils.GetContentTypeByExt(ext),
	})
	if err != nil {
		return "", fmt.Errorf("failed to upload bytes to MinIO: %w", err)
	}

	return fmt.Sprintf("minio://%s/%s", s.bucketName, objectName), nil
}

// GetFileURL returns a presigned download URL for the file
func (s *minioFileService) GetFileURL(ctx context.Context, filePath string) (string, error) {
	objectName, err := s.parseMinioFilePath(filePath)
	if err != nil {
		return "", err
	}
	presignedURL, err := s.client.PresignedGetObject(ctx, s.bucketName, objectName, 24*time.Hour, nil)
	if err != nil {
		return "", fmt.Errorf("failed to generate presigned URL: %w", err)
	}
	return presignedURL.String(), nil
}

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Verify the object exists and credentials can sign URLs
  2. Check endpoint/SSL configuration for presigning
  3. Retry URL generation on transient errors
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at internal/application/service/file/minio.go:232 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/ef8967dc433d5455. Report an issue: GitHub.