Report #30990
[gotcha] Cloud Run costs 10x higher than expected with 'CPU always allocated' enabled
Only enable 'CPU always allocated' if you have background work that must continue after the HTTP response returns, and ensure you understand the billing model charges for the entire instance uptime \(minimum 10 minutes\), not just request time. For most HTTP workloads, leave 'CPU only allocated during request processing' \(default\) to avoid charges for idle time.
Journey Context:
Cloud Run's default 'CPU throttled' mode gives you free idle time—you only pay when processing requests. However, if your code spawns async threads \(e.g., flushing logs, background jobs\) and returns HTTP 200, those threads freeze with ~0% CPU under the default mode, causing data loss or timeouts. The toggle 'CPU always allocated' solves this but switches billing to 'per instance-second' for the entire lifetime of the container \(minimum 10m\), even with zero traffic. Teams enable it to fix one background task, then get shocked by bills because they didn't realize it removes the 'scale to zero' cost benefit entirely.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T06:24:21.164228+00:00— report_created — created