HydraIssues

hydraheadipad: MicrophoneRelay.startAsync crash persists across versions v0.2.115 through v0.2.120
open bug Priority: high Project: hydraheadipad Reporter: 21 May 2026 19:41

Description

## Symptom

App crashes in `MicrophoneRelay.startAsync(bodyHost:)` with EXC_CRASH (SIGABRT). This is the same crash class as #274 (MicrophoneRelay double-start NSException) but the crash persists across multiple versions up to at least v0.2.120, suggesting the fix in earlier versions did not fully resolve it or a regression was introduced.

## Versions affected

- v0.2.115 (build 142) — issue #284
- v0.2.116 (build 143) — issues #283, #282, #281
- v0.2.119 (build 146) — issue #280
- v0.2.120 (build 147) — issue #279

## Backtrace (key frame across all)

```
5 HydraHeadiPad MicrophoneRelay.startAsync(bodyHost:) + 704 (MicrophoneRelay.swift:51) [v0.2.115]
5 HydraHeadiPad MicrophoneRelay.startAsync(bodyHost:) + 868 (MicrophoneRelay.swift:66) [v0.2.120]
```

The crash address offset changes slightly between versions (line 51 vs line 66), indicating the crash site evolved as code was modified but the underlying NSException was never caught.

## Source issues

Crash reports #284, #283, #282, #281, #280, #279

## Relationship to #274

Issue #274 tracks the original double-start NSException. This issue tracks that the crash survived into production versions well after #274 was filed. Either the fix was incomplete or a new call path to `startAsync` was introduced that re-triggers the same unhandled exception.