What the issue is
POST /api/v1/transcription/upload-multitrack accepts uploads (200 OK), but the created multi-track job is not playable and API clients may fail to parse the response:
- Clients receive an empty
200 response body where docs indicate a TranscriptionJob JSON payload.
- The created job later fails audio playback via
GET /api/v1/transcription/{id}/audio with 404.
- Server debug logs show the job has no
audio_path (Audio path: '').
Why this is a problem
- Breaks API contract for typed clients expecting JSON response (
TranscriptionJob) on success.
- Multi-track upload appears successful to users, but playback fails in UI (
Unable to load audio stream.).
- Job remains in a non-usable state for downstream workflows, making multi-track behavior unreliable.
Environment
- Image:
ghcr.io/rishikanthc/scriberr-cuda:latest
- Resolved digest:
sha256:3babe419f7eb543a69de59071867aa8e6c7415dfb652683f39c4b355513a70e9
- Deployment: Docker Compose
- Observed: 2026-05-04
Expected behavior
After successful multi-track upload:
- API returns
200 with valid TranscriptionJob JSON body.
- Job has a playable source (
audio_path fallback or merged_audio_path after merge).
GET /api/v1/transcription/{id}/audio returns streamable audio (not 404 due to empty path).
Actual behavior
- Upload returns
200 but may have empty body.
- Job is created and listed.
- Audio endpoint fails:
- Debug output:
Audio path: ''
- Response:
404 Audio file path not found
Evidence (logs)
Upload accepted
INFO 13:38:19 POST /api/v1/transcription/upload-multitrack 200 265.94ms
Playback failure for created job
DEBUG: GetAudioFile for job d5293504-0f71-461d-9f08-7287c0124564
DEBUG: Job status: uploaded
DEBUG: Audio path: ''
DEBUG: Audio path is empty
INFO 13:49:30 GET /api/v1/transcription/d5293504-0f71-461d-9f08-7287c0124564/audio 404 0.68ms
Reproduction steps
- Upload multiple tracks to
POST /api/v1/transcription/upload-multitrack.
- Open the created job in the UI.
- Attempt playback.
- Observe
Unable to load audio stream in frontend and Audio path: '' in backend logs.
Suspected regression points (from git history)
99031c5 (major refactor): UploadMultiTrack flow changed from tracks path (with fallback AudioPath and processing trigger) to newer path that no longer guarantees playable source population.
bcb22af (docs: update swagger documentation for delta sync API): appears to remove c.JSON(http.StatusOK, job) in UploadMultiTrack, causing empty 200 response body.
Suggested fix direction
- Restore JSON success response in
UploadMultiTrack:
c.JSON(http.StatusOK, job)
- Ensure multi-track uploads become playable:
- set a valid
audio_path fallback, and/or
- guarantee
merged_audio_path generation and availability before playback.
- Ensure lifecycle transitions beyond
uploaded as intended for multi-track processing.
- Add/expand tests to assert:
- non-empty JSON body on successful multi-track upload,
- non-empty playable path and successful
/audio fetch post-upload/processing.
What the issue is
POST /api/v1/transcription/upload-multitrackaccepts uploads (200 OK), but the created multi-track job is not playable and API clients may fail to parse the response:200response body where docs indicate aTranscriptionJobJSON payload.GET /api/v1/transcription/{id}/audiowith404.audio_path(Audio path: '').Why this is a problem
TranscriptionJob) on success.Unable to load audio stream.).Environment
ghcr.io/rishikanthc/scriberr-cuda:latestsha256:3babe419f7eb543a69de59071867aa8e6c7415dfb652683f39c4b355513a70e9Expected behavior
After successful multi-track upload:
200with validTranscriptionJobJSON body.audio_pathfallback ormerged_audio_pathafter merge).GET /api/v1/transcription/{id}/audioreturns streamable audio (not404due to empty path).Actual behavior
200but may have empty body.Audio path: ''404 Audio file path not foundEvidence (logs)
Upload accepted
Playback failure for created job
Reproduction steps
POST /api/v1/transcription/upload-multitrack.Unable to load audio streamin frontend andAudio path: ''in backend logs.Suspected regression points (from git history)
99031c5(major refactor):UploadMultiTrackflow changed fromtrackspath (with fallbackAudioPathand processing trigger) to newer path that no longer guarantees playable source population.bcb22af(docs: update swagger documentation for delta sync API): appears to removec.JSON(http.StatusOK, job)inUploadMultiTrack, causing empty200response body.Suggested fix direction
UploadMultiTrack:c.JSON(http.StatusOK, job)audio_pathfallback, and/ormerged_audio_pathgeneration and availability before playback.uploadedas intended for multi-track processing./audiofetch post-upload/processing.