-
Notifications
You must be signed in to change notification settings - Fork 1.6k
[BUG] NSRangeException crash in libmlx on macOS Tahoe 26.3.1 during Parakeet model initialization #3256
Copy link
Copy link
Open
Description
Description
MLX crashes with a native NSRangeException on macOS Tahoe while initializing a Parakeet MLX model. This happens before inference begins and before Python can catch any exception.
I reproduced it across multiple MLX / mlx-metal version pairs, so this does not appear to be limited to a single recent MLX release.
Environment
- macOS: 26.3.1
- Build: 25D2128
- Machine: MacBook Pro (Mac16,7)
- Chip: Apple M4 Pro
- Architecture: arm64
- Memory: 48 GB
Python:
- 3.12.11
Package versions tested:
- parakeet-mlx 0.5.1
- mlx / mlx-metal:
- 0.31.1 / 0.31.1
- 0.30.6 / 0.30.6
- 0.28.0 / 0.28.0
Reproduction
Minimal script:
from pathlib import Path
from parakeet_mlx import from_pretrained
model = from_pretrained("mlx-community/parakeet-tdt-0.6b-v3")
result = model.transcribe(Path(".cache/datasets/nl/audio/nl-0000.mp3"))
print(result.text)Observed behavior
The process aborts during model initialization with:
*** Terminating app due to uncaught exception 'NSRangeException', reason:
'*** -[__NSArray0 objectAtIndex:]: index 0 beyond bounds for empty array'
The stack trace goes through:
libmlx.dylibMetalAllocator- MLX Metal device initialization
Expected behavior
MLX should either:
- initialize successfully and allow model loading/inference, or
- fail gracefully with a catchable Python exception
It should not terminate the Python process with an uncaught native exception.
Additional notes
- The crash reproduces on Python 3.12 and Python 3.14.
- The crash happens before inference starts.
parakeet_mlxusesffmpegfor audio decoding, so this does not appear to be an input-format problem.- Because the crash reproduces on multiple MLX versions, this looks like a broader MLX/macOS Tahoe compatibility issue.
Version matrix tested
Attempt 1
- Python: 3.12.11
- mlx: 0.31.1
- mlx-metal: 0.31.1
- parakeet-mlx: 0.5.1
- import works: yes
- model init works: no
- inference starts: no
- result: native
NSRangeExceptioncrash
Attempt 2
- Python: 3.12.11
- mlx: 0.30.6
- mlx-metal: 0.30.6
- parakeet-mlx: 0.5.1
- import works: yes
- model init works: no
- inference starts: no
- result: same native
NSRangeExceptioncrash
Attempt 3
- Python: 3.12.11
- mlx: 0.28.0
- mlx-metal: 0.28.0
- parakeet-mlx: 0.5.1
- import works: yes
- model init works: no
- inference starts: no
- result: same native
NSRangeExceptioncrash
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels