Understanding Edge Function CPU limits

Learn how Edge Functions manage CPU resources and what happens when limits are reached.

How isolates work

An isolate is like a worker that can handle multiple requests for a function. It works until it reaches the wall clock time limit. Edge Functions use isolates with soft and hard CPU limits.

Soft limit

When the isolate hits the soft limit, it retires. This means:

  • It won’t take on any new requests
  • It will finish processing requests it’s already working on
  • It keeps going until it hits the hard limit for CPU time or reaches the wall clock time limit, whichever comes first

Hard limit

If there are new requests after the soft limit is reached:

  • A new isolate is created to handle them
  • The original isolate continues until it hits the hard limit or the time limit
  • This ensures existing requests are completed while new ones are managed by a fresh isolate

Current limits

  • Wall clock time limit: 150 seconds on the Free plan, 400 seconds on paid plans
  • CPU execution time: 2 seconds of active computing per request

What happens when limits are exceeded

When your function exceeds CPU limits, you may see:

  • 546 error responses
  • Function termination with CPUTime shutdown reason
  • Degraded performance as new isolates spin up

Optimizing CPU usage

Profile your code

Identify CPU-intensive sections in your function:

  • Complex calculations
  • Data processing loops
  • Encryption operations

Optimize algorithms

  • Use more efficient data structures
  • Cache computed results
  • Reduce algorithmic complexity

Offload heavy work

  • Move intensive processing to background jobs
  • Use external services for heavy computations
  • Break large tasks into smaller functions

Additional resources

Go to the GitHub discussion