Skip to content

Cannot open HNSW zvec collection on Apple Silicon (arm64): Map segment failed, segment id HnswT2S0 #681

Description

@cc1234475

Summary

Opening a zvec collection (HNSW index) fails on Apple Silicon (macOS arm64) with a segment-mapping error. The exact same collection opens successfully on x86_64 Linux, so this is architecture-specific.

Error

On macOS 26.5.2, Apple M-series (arm64):

index_mapping.cc:379      Map segment failed, segment id HnswT2S0
hnsw_chunk.cc:42          Storage append segment failed for Duplicate
hnsw_streamer_entity.cc:380  Open index failed for Duplicate
index.cc:337              Failed to open streamer, path: .../collection.zvec
Zvec error: open collection failed err=8

err=8 on macOS is ENOEXEC. The failing path is the HNSW segment mmap in index_mapping.cc.

On x86_64 Linux, the identical collection opens fine.

Environment

  • macOS 26.5.2 (build 25F84), Apple Silicon arm64
  • zvec built from source, cmake -DBUILD_C_BINDINGS=ON -DBUILD_TOOLS=OFF -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
  • CMake detects turbo: ARM64 detected, NEON enabled by default
  • zvec commit tested: e5e799221b45bbb90f5fdc5c69b6b8dfbf017e78
  • SDK: macOS 26.x

Steps to reproduce

  1. Build zvec C bindings natively on Apple Silicon (see env above).
  2. Open any existing HNSW zvec collection (created on x86_64).
  3. Observe the Map segment failed, segment id HnswT2S0 error and open collection failed err=8.

Notes

  • Reproduced with both a GitHub-release prebuilt binary and a freshly source-built library, so it is not a packaging/artifact issue.
  • The collection was created on Linux x86_64; cross-architecture open fails at the HNSW segment map step.
  • Related: zvec-ai/zvec-rust#13 (same failure surfaced through the Rust binding).

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status
Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions