Tencent/WeKnora · error

failed to save downloaded file: %w

Error message

failed to save downloaded file: %w

What it means

Thrown in ProcessDocument when fileSvc.SaveBytes fails to persist the downloaded file bytes to (tenant-resolved) storage before parsing. Fires on storage outage/quota; on the last retry the knowledge is marked failed with the underlying message.

Source

Thrown at internal/application/service/knowledge_process.go:3384

		if resolvedFileName != "" && knowledge.FileName == "" {
			knowledge.FileName = resolvedFileName
		}
		if resolvedFileType != "" && knowledge.FileType == "" {
			knowledge.FileType = resolvedFileType
			s.repo.UpdateKnowledge(ctx, knowledge)
		}

		fileSvc := s.resolveFileService(ctx, kb)
		filePath, err := fileSvc.SaveBytes(ctx, contentBytes, payload.TenantID, resolvedFileName, true)
		if err != nil {
			if isLastRetry {
				knowledge.ParseStatus = "failed"
				knowledge.ErrorMessage = err.Error()
				knowledge.UpdatedAt = time.Now()
				s.repo.UpdateKnowledge(ctx, knowledge)
			}
			return fmt.Errorf("failed to save downloaded file: %w", err)
		}

		payload.FilePath = filePath
		payload.FileName = resolvedFileName
		payload.FileType = resolvedFileType
		convertResult, err = s.convert(ctx, payload, kb, knowledge, eff, isLastRetry)
		if err != nil {
			return err
		}
		if convertResult == nil {
			return nil
		}
	} else if payload.URL != "" {
		// URL import
		convertResult, err = s.convert(ctx, payload, kb, knowledge, eff, isLastRetry)
		if err != nil {
			return err
		}

View on GitHub (pinned to 988cbb0330)

Solutions

  1. Check object storage availability and tenant credentials/quota
  2. Retry the parse task once storage is healthy
  3. Inspect knowledge.ErrorMessage for the storage-layer cause
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at internal/application/service/knowledge_process.go:3384 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/19367d5014ad5406. Report an issue: GitHub.