2.118.0-beta.72 (darwin-arm64): `supabase --version` blocks forever in open(2), and one stuck process blocks every later invocation
@7ttp is already working on this.
Since Sep 23, 2026.
Assessment
This issue has not been assessed yet.
Description
Affected area
Installation
Supabase CLI version
2.118.0-beta.72
Operating system
macOS (Darwin 25.6.0), Apple silicon (darwin-arm64)
Installation method
npm
Command
supabase --version
Actual output
(nothing — the process never exits)
The process sits at 0% CPU. sample shows the main thread blocked in open(2):
Sort by top of stack, same collapsed (when >= 5):
__openat_nocancel (in libsystem_kernel.dylib) 798
__ulock_wait (in libsystem_kernel.dylib) 798
__workq_kernreturn (in libsystem_kernel.dylib) 798
lsof on the stuck process shows only its cwd and the stdout/stderr pipes, with no regular files open.
Expected behavior
It prints 2.118.0-beta.72 and exits, as it does most of the time.
Steps to reproduce
We have not found the trigger for the first hang. Here is what we observed:
- On a self-hosted macOS arm64 GitHub Actions runner,
supabase/setup-cli@v3withversion: 2.118.0-beta.72rannpm viewandnpm installin about 2 s. Its follow-upsupabase --versionnever returned, and the job sat in the setup step for 14 minutes until the run was cancelled. - While a stuck
supabase --versionprocess was alive, every other invocation of the 2.118.0-beta.72 darwin-arm64 binary on the same machine also blocked at startup. That held for--versionand--helpalike, from cwd/or/tmp, underenv -i, withHOMEpointed at an empty directory, and with stdin from/dev/null. Each attempt hung until a 10-15 s alarm killed it. - During the same window, the 2.117.0 and 2.90.0 binaries on the same machine answered
--versionimmediately. - After the stuck processes were killed,
supabase --versionfrom 2.118.0-beta.72 answered in about 1 s again. - Earlier the same day, the same beta ran
db start,start,functions serveandstopon this machine without problems. - No process held
~/.supabase/telemetry.jsonor~/.supabase/traces/*.ndjsonopen while the hang was happening.
Because a new process from any cwd, env or HOME blocks in open(2) only while another instance is stuck, the binary seems to open a machine-global path that can block, such as a FIFO or an exclusively locked file, before it prints anything.
Additional context
We tried the beta because it includes #6697, the fix for the quadratic statement splitter in #6686, which makes db start take about 10 minutes on a 2.9 MB single-statement migration in 2.110.0 through 2.117.0. We reverted our CI to 2.90.0 because a hang like this can hold a single self-hosted runner indefinitely.
- Dominant language
- TypeScript
- Stars
- 2.4k
- Forks
- 523
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 268
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
Difficulty 3/5 1-2 days Newbie friendliness 65/100
-
bug supabase/cli
Difficulty 3/5 1-2 days Newbie friendliness 65/100
-
🐛 Bug supabase/cli
-
🐛 Bug supabase/cli
Difficulty 3/5 1-2 days Newbie friendliness 65/100
-
🐛 Bug supabase/cli
Similar issues
-
bug(cli): hapi doctor inline-media prints a fabricated B:\ helper-script path in packaged installs Open
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Crush Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
catppuccin/catppuccin#3125 ·
-
Add a SECURITY.md Open
Difficulty 1/5 Under an hour Newbie friendliness 90/100
ElementsProject/cln-application#167 · 1 comment · 1 reaction ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Quantco/pnpm-licenses#17 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100