Skip to content

Crash: objc_retain in TextToSpeech framework (macOS 27) #394

Description

@kpmmmurphy

Crash report

File: M1K3-2026-09-16-202458.ips
Date: 2026-09-16 20:24:58 +0100
OS: macOS 27.0 (26A428)
Exception: EXC_BAD_ACCESS / SIGSEGV (KERN_INVALID_ADDRESS at 0x000010aec0c84ad8)

Stack trace (crashed thread)

 0 [libobjc.A.dylib] objc_retain
 1 [TextToSpeech] <unsymbolicated +2358056>
 2 [TextToSpeech] <unsymbolicated +724224>
 3 [libdispatch.dylib] _dispatch_call_block_and_release
 4 [libdispatch.dylib] _dispatch_client_callout
 5-6 [libdispatch.dylib] _dispatch_main_queue_drain
 7 [libdispatch.dylib] _dispatch_main_queue_callback_4CF
 8-14 [CoreFoundation/HIToolbox/AppKit] main run loop

Analysis

A dangling pointer in Apple's TextToSpeech private framework — objc_retain on the main dispatch queue tried to retain an already-deallocated object. The crash is entirely within Apple's framework code (frames 0–2), dispatched on the main queue.

Likely cause: an AVSpeechSynthesizer delegate callback or completion block referencing a deallocated synthesizer or utterance. M1K3 uses system AVSpeechSynthesizer as a fallback voice (the primary is Kokoro/MLX). This could happen if:

  • The synthesizer was deallocated while speech was in progress
  • A delegate callback arrived after the owning view/controller was torn down

Mitigation: ensure the AVSpeechSynthesizer instance outlives any in-flight utterance, or stop speech before deallocation. Since the crash is inside Apple's framework, it may also be an Apple bug on macOS 27.0.

Notes

  • Single occurrence (1 report)
  • The address 0x000010aec0c84ad8 has a high bit set — likely a stale tagged pointer or use-after-free
  • No M1K3 frames in the stack — this is a framework-internal crash

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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