websocket.create_connection had no timeout, so a hung Runtime.evaluate (Electron business tab not replying) blocked ws.recv() indefinitely — the export-poll's 300s deadline and with_retry could never fire (observed as a ~22min hang on an 安能 expected download). A 15s socket timeout lets recv raise WebSocketTimeoutException so wait_until/with_retry can fail and retry. Co-Authored-By: Claude <noreply@anthropic.com>
56 KiB
56 KiB