Summary: Intermittent page-render invocations on our production Next.js App Router project freeze and run to the 300s wall, returning 504 FUNCTION_INVOCATION_TIMEOUT. Reproducible at roughly 1-in-10 rapid client-side navigations. Fluid Compute, region lhr1, team joel-s-projects10, project nexus-v2.
A fully captured instance (end to end):
- Request ID
kbncc-1783598898194-3608c707e853, GET / (RSC navigation), 09 Jul 13:08:18 BST, deploymentdpl_FM6nMkEKeS85o9cepST2ZCcGmReT - Edge middleware completed normally (200; its one external auth call returned fine)
- The function invocation ran 5m / 5m max and the log detail panel shows External APIs: "No outgoing requests" - the function performed no I/O at all before timing out
- Our Postgres (Supabase) pg_stat_activity was checked live DURING the freeze: zero active backends, no query in flight
- During the same freeze, fresh requests to the identical route returned 200 in under 600ms from the same browser - one frozen instance, not an outage
Other observations:
- In other occurrences the freeze lands mid-query (pooled connections stuck at wait_event ClientRead climbing to 300s) - consistent with the instance freezing at arbitrary points rather than any code path
- Bursts of these timeouts reliably follow deployments, and also occur during normal navigation
- Every page route is affected equally; API routes on the same deployment are unaffected
- Middleware auth hang was a separate mechanism we already fixed; zero auth-timeout markers during these freezes
What we've ruled out: app code (page-agnostic), auth (middleware 200), the database (pg_stat_activity clean, and no outgoing requests from the frozen invocation), and per-query timeouts as a fix (there is no query to abort when it freezes pre-I/O).
Mitigation we're deploying: maxDuration = 30 on page routes, so these failures will start reporting 30s instead of 300s.
Ask: does this match known Fluid instance suspension/resume behaviour, and can anyone from Vercel pull instance-level telemetry / container lifecycle events for the request ID above? The Vercel Agent on the Help page assessed this as aligning with "runtime container pause or suspension mechanics" and prepared a Severity 2 case, but case submission is gated on Hobby - hence this post.