Skip to content

Recurring crash: NSInternalInconsistencyException in NSHostingView constraint update during display cycle #1229

Description

@ebolamerican

Description

TypeWhisper crashes roughly once a day with an uncaught AppKit exception thrown during the display cycle. The app auto-relaunches, so the crashes are easy to miss — I only noticed after finding a string of near-daily reports in DiagnosticReports (Aug 29, Aug 30, Aug 31 on my machine, and older ones before that).

The signature is identical every time: NSHostingView.didChangeValue(forKey:)invalidateSafeAreaCornerInsets()setNeedsUpdate()-[NSWindow(NSDisplayCycle) _postWindowNeedsUpdateConstraints] throws (constraint update requested at an illegal point in the display cycle), AppKit's _crashOnException: aborts.

Crash backtrace (lastExceptionBacktrace, v1.7.0 build 1161, macOS 26.4.1)

CoreFoundation: __exceptionPreprocess + 164
libobjc.A.dylib: objc_exception_throw + 88
CoreFoundation: +[NSException exceptionWithName:reason:userInfo:] + 0
AppKit: -[NSWindow(NSDisplayCycle) _postWindowNeedsUpdateConstraints] + 1716
AppKit: -[NSView _informContainerThatSubviewsNeedUpdateConstraints] + 64
AppKit: -[NSView setNeedsUpdateConstraints:] + 468
SwiftUI: NSHostingView.setNeedsUpdate() + 176
SwiftUI: NSHostingView.requestUpdate(after:) + 676
SwiftUICore: closure #1 in ViewGraphRootValueUpdater.invalidateProperties(_:mayDeferUpdate:) + 228
SwiftUICore: ViewGraphRootValueUpdater.invalidateProperties(_:mayDeferUpdate:) + 192
SwiftUI: NSHostingView.invalidateSafeAreaCornerInsets() + 208
SwiftUI: NSHostingView.didChangeValue(forKey:) + 328
SwiftUI: @objc NSHostingView.didChangeValue(forKey:) + 68
CoreFoundation: __CFSetApplyFunction_block_invoke + 28
CoreFoundation: CFBasicHashApply + 144
CoreFoundation: CFSetApplyFunction + 228
AppKit: __reusableDependencyContextForKey_block_invoke + 140

The faulting main-thread stack ends in +[NSApplication _crashOnException:] via NSDisplayCycleObserverInvokeupdateConstraintsForSubtreeIfNeeded.

Steps to Reproduce

No reliable trigger identified — it fires in the background during normal operation (timestamps on my reports: 18:59, 18:00, 12:59 local on consecutive days). Happy to attach full .ips files if useful.

macOS Version

macOS 26.4.1

TypeWhisper Version

1.7.0 (1161); identical signature in reports from earlier builds as well.

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

    area: UIRelated to user interface and settingsbugSomething isn't workingeffort: mediumModerate implementation effort (days)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions