Edge Function error: 'Rate limit exceeded for trace'
Last edited: 5/11/2026
If you are observing a RateLimitError: "Rate limit exceeded for trace ..." error when invoking Edge Functions, it typically indicates that a single function execution is triggering too many downstream calls simultaneously.
Why Does This Happen?
- This often occurs in "fan-out" scenarios, such as a cron-driven function that calls other functions in a loop.
- All downstream
supabase.functions.invoke()calls initiated from the same parent execution share a single Trace ID. These calls draw from a specific per-trace safety budget rather than the total project-level capacity. If the volume of calls is too high, the budget is exhausted and subsequent calls are throttled.
How to Resolve This Issue:
- Pace Invocations: Introduce a delay between
invoke()calls (e.g., hundreds of milliseconds) in the producer function to stay within the trace budget. - Batch Payloads: Restructure the downstream function to accept an array of data, allowing a single invocation to process multiple records instead of triggering individual calls for each.
- Consolidate Logic: Refactor the logic into a shared library or move it directly into the calling function to eliminate the need for cross-function network calls.
You can monitor these errors by visiting the logs explorer to identify which executions are exceeding their trace budget.