functions deploy exits 0 without deploying under concurrent load (138 of 237 functions missing)
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 50/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- cli
Research direction
Start by reproducing supabase functions deploy <name> --project-ref <ref> for many functions with eight concurrent workers, then inspect the functions deploy command's result and exit-code handling. Compare reported success with GET /v1/projects/<ref>/functions/<slug> responses, including HTTP 429 and 404 cases; done means partial deployment is reported as failure rather than exiting 0.
Written by the indexing model from the issue text.
Description
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
- Dominant language
- TypeScript
- Stars
- 2.4k
- Forks
- 523
- Avg merge
- 20h 47m
- Merged PRs (30d)
- 243
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from supabase/cli
-
🐛 Bug supabase/cli
-
🐛 Bug supabase/cli
-
🐛 Bug supabase/cli
-
Local Kong keeps idle upstream connections longer than PostgREST, causing sporadic 502 on POST/PATCH Open🐛 Bug supabase/cli
-
✨ Feature supabase/cli
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
danielmiessler/LifeOS#2218 ·