Bug Description
Dashboard video feed freezes permanently when frame acknowledgments fail (network timeout, connection issues) with no error messages or recovery.
Root Cause
The screencast protocol uses a request-acknowledgment system where the browser waits for an acknowledgment before sending the next frame. The current code uses sendMayFail() which silently swallows all errors, leaving users with a frozen video and no indication of what went wrong.
Reproduction Steps
- Start Playwright Dashboard with screencast enabled
- Open a page and start viewing the video feed
- Simulate one of these conditions:
- Network timeout: Artificially delay the network connection during frame ack
- High latency: Use a network throttling tool (e.g., Chrome DevTools Network tab)
- Connection interruption: Briefly disconnect network while screencast is active
- Session termination: Close browser session while screencast callback is pending
- Expected: Error message shown, or video recovers gracefully
- Actual: Video feed freezes permanently with no error or recovery
Affected Scenarios
- Network timeouts between Dashboard and browser
- Browser session terminated while screencast active
- CDP/protocol connection issues
- High latency connections
User Impact
- Video feed stops updating permanently
- No error message shown
- No recovery mechanism - requires full restart
- Users don't know if it's a bug or intentional pause
Technical Details
- Browser sends frame → waits for ack → sends next frame
- If ack fails, browser never sends next frame
sendMayFail() hides these failures completely
Bug Description
Dashboard video feed freezes permanently when frame acknowledgments fail (network timeout, connection issues) with no error messages or recovery.
Root Cause
The screencast protocol uses a request-acknowledgment system where the browser waits for an acknowledgment before sending the next frame. The current code uses
sendMayFail()which silently swallows all errors, leaving users with a frozen video and no indication of what went wrong.Reproduction Steps
Affected Scenarios
User Impact
Technical Details
sendMayFail()hides these failures completely