Running supabase functions deploy under concurrent load returns exit code 0 while the functions are not deployed.
What we measured
On a Supabase branch project, of 237 edge functions 138 were absent afterwards, while the CLI reported success for all 237 and exited 0. No warning and no rate-limit message appeared for those. The absence was confirmed along a second path: GET /v1/projects/<ref>/functions/<slug> returned HTTP 404 "Function not found" for each of them.
Some invocations did fail visibly with:
unexpected list functions status 429: {"message":"ThrottlerException: Too Many Requests"}
but far from all 138.
Why it matters
An automated bootstrap cannot trust the exit code. We now query the API after every round to learn what is actually deployed, and retry only the difference. Anyone who trusts the exit code ships half an environment and reports it as complete.
Question
Can the exit code follow the real result here, or is there a flag that makes the CLI fail on a partial deploy?
Environment
- CLI version: 2.109.1
- Target: Supabase branch project, 237 edge functions
- Invocation: one
supabase functions deploy <name> --project-ref <ref> per function, 8 in parallel
Running
supabase functions deployunder concurrent load returns exit code 0 while the functions are not deployed.What we measured
On a Supabase branch project, of 237 edge functions 138 were absent afterwards, while the CLI reported success for all 237 and exited 0. No warning and no rate-limit message appeared for those. The absence was confirmed along a second path:
GET /v1/projects/<ref>/functions/<slug>returned HTTP 404 "Function not found" for each of them.Some invocations did fail visibly with:
but far from all 138.
Why it matters
An automated bootstrap cannot trust the exit code. We now query the API after every round to learn what is actually deployed, and retry only the difference. Anyone who trusts the exit code ships half an environment and reports it as complete.
Question
Can the exit code follow the real result here, or is there a flag that makes the CLI fail on a partial deploy?
Environment
supabase functions deploy <name> --project-ref <ref>per function, 8 in parallel