video-accessibility/backend/app/tasks
michael 8606877d01 fix: properly set tts_failed status when TTS synthesis fails
The TTS error handling had a bug where failed jobs stayed in
'tts_generating' status instead of being set to 'tts_failed'.

Root cause: synthesize_cue_task used autoretry_for=(Exception,)
which raises the original exception after max retries, not
MaxRetriesExceededError. The exception handler never fired.

Changes:
- tts_synthesis.py: Replace autoretry_for with manual retry logic
  that returns a failure dict on final failure instead of raising
- translate_and_synthesize.py: Add propagate=False to group.get()
  to safely retrieve all results including failures
- translate_and_synthesize.py: Update outer exception handler to
  set job status to tts_failed, store error details, and broadcast
  status update via WebSocket

Now TTS failures will:
1. Set job status to 'tts_failed'
2. Store detailed error info (cue index, text, message)
3. Show error in UI with retry button

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-04 10:45:33 -06:00
..
__pycache__ removed mongodb change stream monitoring, added global websockets monitoring for notifications, broke symmetry between toasts and persistent notifications (and refined which notifications get sent and how) 2025-08-25 15:48:18 -05:00
__init__.py feat: add dedicated TTS worker with parallel per-cue synthesis 2025-12-30 14:23:11 -06:00
ffmpeg_operations.py feat: add dedicated ffmpeg queue to prevent server overload 2025-12-26 17:56:23 -06:00
ingest_and_ai.py fix: broadcast WebSocket updates for ingesting and ai_processing status 2025-12-27 07:38:25 -06:00
notify.py added websockets for live job status updates with toast notifications on job list page 2025-08-24 19:41:23 -05:00
render_accessible_video.py feat: use AD VTT pause points instead of Gemini video analysis 2026-01-03 19:05:45 -06:00
translate_and_synthesize.py fix: properly set tts_failed status when TTS synthesis fails 2026-01-04 10:45:33 -06:00
tts_synthesis.py fix: properly set tts_failed status when TTS synthesis fails 2026-01-04 10:45:33 -06:00
whisper_transcribe.py fix: add authentication for Cloud Run service calls 2026-01-02 11:41:07 -06:00