94d3764c05
Build and Deploy Verso / deploy (push) Has been cancelled
Uploads from slow connections consistently fail with 502 after ~60-120s because an upstream proxy (Traefik or cloud load-balancer) has a "first response byte" deadline that fires before the request body arrives. Fix: add startStreamingResponse middleware (after auth, before multer) that immediately writes HTTP 200 + Transfer-Encoding: chunked + '\n'. With proxy_request_buffering off in Nginx, this reaches the proxy at T≈0, so no timeout triggers. The upload body continues streaming; multer writes to disk; the actual JSON result arrives as the final chunk. Periodic heartbeat '\n' writes every 30s keep response-idle timeouts at bay too. Client-side: override Uppy's getResponseData/validateStatus to trim leading whitespace before JSON.parse so the extra '\n' bytes are ignored. Server-side: sendUploadResponse() helper handles both streaming mode (res.headersSent → res.end(json)) and normal mode (res.status(N).json()). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>