Skip to content

[BUG] NSRangeException crash in libmlx on macOS Tahoe 26.3.1 during Parakeet model initialization #3256

@okkie2

Description

@okkie2

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.dylib
  • MetalAllocator
  • 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_mlx uses ffmpeg for 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 NSRangeException crash

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 NSRangeException crash

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 NSRangeException crash

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions