supabase start: vector container segfaults on native arm64 (Apple Silicon), execve EFAULT loading vector:0.53.0-alpine

Open
#6,479 2 comments 0 reactions 1 assignee View on GitHub

@7ttp is already working on this.

Since Sep 9, 2026.

Assessment

This issue has not been assessed yet.

Description

🐛 Bug supabase/cli
Affected area

Local development / Docker

Supabase CLI version

v2.116.0 (also reproduces on v2.75.0)

Operating system

macOS 26 (Darwin 25.6.0), Apple Silicon (arm64). Docker Desktop 4.57.0.

Installation method

brew

Command
supabase start
Actual output
Starting containers...
Waiting for health checks...
supabase_vector_<project> container logs:
Segmentation fault
Segmentation fault
Segmentation fault
[repeats]
Stopping containers...
{"_tag":"Error","error":{"code":"LegacyHealthCheckTimeoutError","message":"supabase_vector_<project> container is not ready: unhealthy"}}
Expected behavior

The vector (analytics/log) container starts and passes its health check like the rest of the stack.

Steps to reproduce
  1. On an Apple Silicon Mac with Docker Desktop 4.57.0 (macOS 26 / Darwin 25.6.0), run supabase init (or use any project with [analytics] enabled = true in supabase/config.toml, the default).
  2. Run supabase start.
  3. The supabase_vector_* container logs repeated Segmentation fault and never becomes healthy; supabase start fails with LegacyHealthCheckTimeoutError.

Minimal repro without the CLI, isolating the exact image the CLI hardcodes (vector:0.53.0-alpine):

docker run --rm --platform linux/arm64 --entrypoint vector public.ecr.aws/supabase/vector:0.53.0-alpine --version
# exit code 139 (SIGSEGV), no output

strace shows the process never actually starts running vector's code — the crash happens inside the kernel's own binary loader:

$ docker run --rm --platform linux/arm64 --entrypoint sh public.ecr.aws/supabase/vector:0.53.0-alpine \
    -c "apk add --no-cache strace >/dev/null 2>&1; strace vector --version"

execve("/usr/local/bin/vector", ["vector", "--version"], 0xffffcb3b0258 /* 5 vars */) = -1 EFAULT (Bad address)
+++ killed by SIGSEGV +++
Segmentation fault

Isolation that points at this specific image/tag rather than the host or Docker Desktop in general:

  • The same image tag run under --platform linux/amd64 (Rosetta emulation) works fine:
    docker run --rm --platform linux/amd64 --entrypoint vector public.ecr.aws/supabase/vector:0.53.0-alpine --version
    vector 0.53.0 (x86_64-unknown-linux-musl 2b51b40 2026-01-27 21:46:39.386326724)
    
  • The older pinned image, public.ecr.aws/supabase/vector:0.28.1-alpine, runs fine natively on arm64 on the same host:
    docker run --rm --platform linux/arm64 --entrypoint vector public.ecr.aws/supabase/vector:0.28.1-alpine --version
    vector 0.28.1 (aarch64-unknown-linux-musl ff15924 2023-03-06)
    
  • Not a resource constraint: Docker Desktop VM has 188G free disk and 7.1G free RAM; passing --memory=2g explicitly makes no difference.

So the arm64 build inside public.ecr.aws/supabase/vector:0.53.0-alpine specifically appears to be a broken/malformed binary for this loader — every other build (older arm64 tag, same tag's amd64 build) loads and runs correctly.

There is currently no way to work around this from CLI/config: supabase/config.toml has no field to override the vector image or tag, and the tag is hardcoded in the CLI binary (only SUPABASE_INTERNAL_IMAGE_REGISTRY exists, which swaps the registry host, not the tag). No newer tag (e.g. 0.53.1-alpine, 0.54.0-alpine) is published yet.

Docker and service versions
$ docker version
Client: 29.1.3 (darwin/arm64)
Server: Docker Desktop 4.57.0 (Engine 29.1.3, containerd v2.2.1, runc 1.3.4), linux/arm64
Kernel Version: 6.12.54-linuxkit

$ supabase services
supabase/postgres        17.6.1.165
supabase/gotrue           v2.196.0
postgrest/postgrest       v16.1
supabase/realtime         v2.129.3
supabase/storage-api      v1.70.3
supabase/edge-runtime     v1.74.3
supabase/studio           2026.08.17-sha-0c1da8f
supabase/postgres-meta    v0.98.0
supabase/logflare         1.50.4
supabase/supavisor        2.9.7
Additional context

Workaround for anyone hitting this: run supabase start (or any pnpm/npm wrapper around it) with DOCKER_DEFAULT_PLATFORM=linux/amd64 set, which forces all local containers (including vector) to run under the emulated x86_64 build instead of the broken native arm64 one. Slower, but functional until this is fixed.

Dominant language
TypeScript
Stars
2.4k
Forks
523
Avg merge
21h 21m
Merged PRs (30d)
253

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from supabase/cli

All issues in supabase/cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.