Skip to content

Crash on macOS 15.x when rendering rename-only diff in Diff view (NSAttributedString range exception) #2740

@chenin

Description

@chenin

Environment

  • App: GitUp 1.4.3 (1052)
  • OS: macOS 15.7.3 (24G419)
  • Architecture: x86_64 (Intel)
  • Hardware: MacBookPro16,2

Summary

GitUp intermittently crashes on macOS 15.x when performing a rename-only operation and GitUp attempts to render the diff.
The crash occurs on the main thread while rendering the Diff view and is caused by an uncaught Objective-C exception inside NSConcreteMutableAttributedString.

This is not a Git repository corruption issue and does not occur when using git directly in the terminal.

Crash signature

The crash is consistent across multiple reports and always shows the same backtrace:

  • Foundation -[NSMutableRLEArray replaceObjectsInRange:withObject:length:] -[NSConcreteMutableAttributedString setAttributes:range:]
  • GitUpKit -[GIDiffContentsViewController tableView:viewForTableColumn:row:]
  • AppKit -[NSApplication _crashOnException:]

The process terminates with EXC_BAD_INSTRUCTION (SIGILL) after AppKit forcefully aborts due to the uncaught exception.

Key observations

  • The operation is a rename-only change (no content changes).
  • The rename frequently involves files under a dot-prefixed directory (e.g. .Inbox), but the directory name itself is not required to trigger the crash.
  • The issue does not occur every time. It appears to depend on the Diff view state and timing.
  • The crash happens when GitUp refreshes or renders the Diff view after the rename.
  • The same rename operation works reliably using git mv + git commit in the terminal.

This suggests a UI rendering issue rather than a Git data issue.

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