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

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions