fix(service): tolerate concurrent pending-to-uploading status race in UploadChunk

When multiple chunk uploads race on the pending→uploading transition, ignore ErrRecordNotFound from UpdateSessionStatus since another request already completed the update.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
dailz
2026-04-15 10:27:12 +08:00
parent d9a60c3511
commit 79870333cb

View File

@@ -190,7 +190,9 @@ func (s *UploadService) UploadChunk(ctx context.Context, sessionID int64, chunkI
if session.Status == "pending" {
if err := s.uploadStore.UpdateSessionStatus(ctx, sessionID, "uploading"); err != nil {
return fmt.Errorf("update status to uploading: %w", err)
if !errors.Is(err, gorm.ErrRecordNotFound) {
return fmt.Errorf("update status to uploading: %w", err)
}
}
}