fix(app): surface stream delete failures to operators#57
Conversation
Background delete (c29362a) always flashed 'deletion started' and only logged API errors from the daemon thread. Restore synchronous client.delete_stream() so Lrtmp2ApiError reaches flash_error — failed revokes during incident response are no longer invisible. Co-authored-by: Alexander Wagner <info@alexanderwagnerdev.com>
PR Summary by QodoSurface stream delete failures to operators by making deletes synchronous
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
6 rules✅ Cross-repo context Explored:
repo: OpenRTMP/librtmp2-server (sha: 40e5850f) 1.
|
|
Code review by qodo was updated up to the latest commit 297268a |
|
|
Code review by qodo was updated up to the latest commit e267f0c |


Summary
Bug-scan pass on
app.pyfound that the async background delete introduced inc29362aalways showed "Stream deletion started…" and only loggedLrtmp2ApiErrorfrom the daemon thread. Operators could not see failed revokes during incident response.Bug
Scenario: Operator deletes a compromised stream; API is unreachable or the 35s RTMP drain times out. Panel flashes "deletion started" but the stream and keys remain listed with no error.
Impact: Failed delete appears successful — publish/play keys stay valid when the operator believes they are being removed.
Fix
Restore synchronous
client.delete_stream()so failures surface viaflash_error. Gunicorn--timeout 60still covers the client's 35s drain window.Validation
python -m pytest -m "not integration"— 81 passedNeed help on this PR? Tag
/codesmithwith what you need. Autofix is disabled.