You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the user provides an invalid/corrupt image during connect() (via initialImage), the bouncer rejects it with a set_image_ack with success: false and an error like "Could not decode image: image/png file appears corrupt or truncated (1234 bytes)".
The SDK correctly rejects the promise, but connect() is wrapped in pRetry with shouldRetry that only checks against PERMANENT_ERRORS (blocklist: "permission denied", "invalid api key", etc.).
Since image errors dont match any permanent error, the SDK retries the same bad image 5 times with exponential backoff (~30s total), producing 5 identical error logs on the bouncer.
Impact
Users wait ~30s for an error that should be instant
Bouncer gets 5x the error volume for each bad image
Currently the initial draft #1 remaining error pattern in bouncer-realtime logs (~18 errors/30min, many are retries of the same image)
Fix
Add image validation errors to PERMANENT_ERRORS in webrtc-manager.ts:
constPERMANENT_ERRORS=[// existing..."could not decode image","invalid image","expected an image","image too large",];
Or more robustly: treat any set_image_ack with success: false during Phase 2 as non-retryable (same image = same error every time).
Problem
When the user provides an invalid/corrupt image during
connect()(viainitialImage), the bouncer rejects it with aset_image_ackwithsuccess: falseand an error like"Could not decode image: image/png file appears corrupt or truncated (1234 bytes)".The SDK correctly rejects the promise, but
connect()is wrapped inpRetrywithshouldRetrythat only checks againstPERMANENT_ERRORS(blocklist: "permission denied", "invalid api key", etc.).Since image errors dont match any permanent error, the SDK retries the same bad image 5 times with exponential backoff (~30s total), producing 5 identical error logs on the bouncer.
Impact
Fix
Add image validation errors to
PERMANENT_ERRORSinwebrtc-manager.ts:Or more robustly: treat any
set_image_ackwithsuccess: falseduring Phase 2 as non-retryable (same image = same error every time).Related