You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Together: on the 27 line, by evidence, neither route survives — Metal aborts, and the BNNS fallback the Metal‑free route relies on segfaults intermittently, exactly as #817's title says ("time/environment‑gated — same binary flips 40/40 PASS to 0/15 CRASH"). Our BNNS crash came 54 minutes into a plain foreground listen; a short validation run would not see it.
1. BNNS SIGSEGV on iOS 27.0 — the Metal‑free route
Device
iPhone18,1 (iPhone 17 Pro, A19 Pro — SME‑class silicon, same class as #844's 17 Pro Max)
OS
iPhone OS 27.0 (24A5418b)
App
SchriftOhr 0.9.1 (460) (FluidAudio 0.15.5)
When
2026-08-24 20:16:27.0283 -0500 — ~54 min into a foreground listen
Routing
noise = .cpuOnly, tail = .cpuOnly, all other stages .cpuAndNeuralEngine — i.e. what 0.15.6 now ships as aneTailCpu
Exception
EXC_BAD_ACCESS (SIGSEGV) — KERN_INVALID_ADDRESS at 0x0000000158d3c000
No app frame on the stack — the SIGSEGV is inside Apple's SME fp16 vector kernel, reached from bnns::graph::execute_typed_binary_forwards<_Float16> on a dispatch_apply worker: Core ML's own scheduler dispatching a boundary op to CPU/BNNS. Same family as #817 (26.5, iPhone 17e) and #844 (26.6, 17 Pro Max): 26.5, 26.6 and 27.0 all reproduce it on SME‑class chips.
2. MPSGraph abort still present on iOS 27 beta 8
Device
iPad16,2 (iPad mini, A17 Pro)
OS
iPhone OS 27.0 (24A5430a)
App
SchriftOhr 0.9.5 (531)
Signal
6 (SIGABRT), exceptionType 10
Routing
the normal ladder with the GPU stages on .cpuAndGPU, re‑armed on purpose to test the seed
Same signature as #843 / FB24243070: assertion → abort() inside MetalPerformanceShadersGraph under Core ML, on a dispatch worker, no app frames. Minutes in.
What we do about it (for anyone shipping on 27)
We gate the neural voice off entirely on OS 27 and fall back to system voices, because a SIGSEGV or SIGABRT inside Apple's library cannot be caught in‑process and no fallback ladder runs. The per‑route re‑tests are behind self‑clearing tester switches (a crash while armed disarms it on next launch). Happy to share the full .ips and the MetricKit crash JSON for either crash — say the word and I'll attach them.
Filed with Apple: FB24243070 (Metal abort). The BNNS crash on 27 is attached to the same Feedback.
Summary
Two data points from the field that bear on #843 / #844, both captured from devices, both on Kokoro ANE (the
laisherechain via FluidAudio):vadd_fp16_smeSIGSEGV reproduces on iOS 27.0 — on the exact route iPadOS 27.0 beta: default routing's GPU stages (noise/tail) abort in MPSGraph under CoreML — #667 family, new OS (FB24243070) #843 ships as the OS‑27 default (aneTailCpu: noise + tail on.cpuOnly, RNN stages on ANE). iPadOS 27.0 beta: default routing's GPU stages (noise/tail) abort in MPSGraph under CoreML — #667 family, new OS (FB24243070) #843 describes that route as "fine there" and the BNNS segfault as "a 26.x‑line bug (Kokoro ANE: libBNNS EXC_BAD_ACCESS is time/environment-gated — same binary flips 40/40 PASS to 0/15 CRASH same day (controlled evidence; follow-up to #328/#587) #817/Kokoro ANE: BnnsCpuInferenceOperation SIGSEGV still reproduces on iOS 26.6 (follow-up to #817) #844)". It is not 26.x‑only.Together: on the 27 line, by evidence, neither route survives — Metal aborts, and the BNNS fallback the Metal‑free route relies on segfaults intermittently, exactly as #817's title says ("time/environment‑gated — same binary flips 40/40 PASS to 0/15 CRASH"). Our BNNS crash came 54 minutes into a plain foreground listen; a short validation run would not see it.
1. BNNS SIGSEGV on iOS 27.0 — the Metal‑free route
.cpuOnly, tail =.cpuOnly, all other stages.cpuAndNeuralEngine— i.e. what 0.15.6 now ships asaneTailCpuNo app frame on the stack — the SIGSEGV is inside Apple's SME fp16 vector kernel, reached from
bnns::graph::execute_typed_binary_forwards<_Float16>on adispatch_applyworker: Core ML's own scheduler dispatching a boundary op to CPU/BNNS. Same family as #817 (26.5, iPhone 17e) and #844 (26.6, 17 Pro Max): 26.5, 26.6 and 27.0 all reproduce it on SME‑class chips.2. MPSGraph abort still present on iOS 27 beta 8
.cpuAndGPU, re‑armed on purpose to test the seedInnermost frames (MetricKit
callStackTree, deepest first):Same signature as #843 / FB24243070: assertion →
abort()insideMetalPerformanceShadersGraphunder Core ML, on a dispatch worker, no app frames. Minutes in.What we do about it (for anyone shipping on 27)
We gate the neural voice off entirely on OS 27 and fall back to system voices, because a SIGSEGV or SIGABRT inside Apple's library cannot be caught in‑process and no fallback ladder runs. The per‑route re‑tests are behind self‑clearing tester switches (a crash while armed disarms it on next launch). Happy to share the full
.ipsand the MetricKit crash JSON for either crash — say the word and I'll attach them.Filed with Apple: FB24243070 (Metal abort). The BNNS crash on 27 is attached to the same Feedback.