Tencent/WeKnora · error

bucket mismatch in path: got %s, want %s

Error message

bucket mismatch in path: got %s, want %s

What it means

MinIO path parser guard: the bucket named in the minio:// path differs from this service's configured bucket, indicating a path from another deployment/backend; the operation is rejected to prevent cross-bucket access.

Source

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

		return err
	}
	return svc.CheckConnectivity(ctx)
}

// parseMinioFilePath extracts the object name from a provider scheme: minio://{bucket}/{objectKey}
func (s *minioFileService) parseMinioFilePath(filePath string) (string, error) {
	// Provider scheme format: minio://{bucket}/{objectKey}
	const prefix = "minio://"
	if !strings.HasPrefix(filePath, prefix) {
		return "", fmt.Errorf("invalid MinIO file path: %s", filePath)
	}
	rest := strings.TrimPrefix(filePath, prefix)
	parts := strings.SplitN(rest, "/", 2)
	if len(parts) != 2 || parts[0] == "" || parts[1] == "" {
		return "", fmt.Errorf("invalid MinIO file path: %s", filePath)
	}
	if parts[0] != s.bucketName {
		return "", fmt.Errorf("bucket mismatch in path: got %s, want %s", parts[0], s.bucketName)
	}
	if err := utils.SafeObjectKey(parts[1]); err != nil {
		return "", fmt.Errorf("invalid file path: %w", err)
	}
	return parts[1], nil
}

// SaveFile saves a file to MinIO
func (s *minioFileService) SaveFile(ctx context.Context,
	file *multipart.FileHeader, tenantID uint64, knowledgeID string,
) (string, error) {
	// Generate object name
	ext := filepath.Ext(file.Filename)
	objectName := fmt.Sprintf("%d/%s/%s%s", tenantID, knowledgeID, uuid.New().String(), ext)

	// Open file
	src, err := file.Open()
	if err != nil {

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Use paths produced by this service's SaveFile/SaveBytes
  2. Correct the configured bucket name if the deployment changed
  3. Reject foreign-bucket paths at input validation
Defensive patterns

Strategy: validation

When it happens

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