Skip to content

fix(macOS): resolve EXC_BAD_ACCESS crash during drag-and-drop on Sequoia#28

Open
jezip wants to merge 1 commit into
Robert-K:mainfrom
jezip:main
Open

fix(macOS): resolve EXC_BAD_ACCESS crash during drag-and-drop on Sequoia#28
jezip wants to merge 1 commit into
Robert-K:mainfrom
jezip:main

Conversation

@jezip

@jezip jezip commented Apr 21, 2026

Copy link
Copy Markdown

Issue Description

The application crashes immediately on launch or during the first drag-and-drop interaction on macOS 26 (Sequoia) with Apple Silicon (M1) hardware.

Crash Log Highlights:

  • Exception Type: EXC_BAD_ACCESS (SIGSEGV)
  • Exception Subtype: KERN_INVALID_ADDRESS
  • Triggered by Thread: 0 main
  • Stack trace points to:
    • drag::platform_impl::platform::start_drag
    • AppKit -> NSViewAlignRect
  • Code Type: X86-64 (Translated) indicates Rosetta fallback.
error.mov

Root Cause & Fix

This crash is a known incompatibility between older Tauri windowing libraries (tao) and the strict memory alignment / Pointer Authentication rules introduced in macOS 15/16 and refined in 26.

  1. Dependency Update: Updated tao to version 0.30. This version includes upstream fixes for NSView alignment crashes on Apple Silicon.
  2. Window Configuration: Explicitly set dragDropEnabled: false in tauri.conf.json. This resolves a race condition where the native macOS drag handler conflicts with the webview's HTML5 drag handler, leading to an invalid memory access attempt.

Changes

  • Updated tao dependency to 0.30 in src-tauri/Cargo.toml.
  • Added "dragDropEnabled": false to the window configuration in src-tauri/tauri.conf.json.
work.1.mov

Exorsky added a commit to Exorsky/splicerr that referenced this pull request Jun 6, 2026
On macOS the webview's built-in drag-drop handler conflicts with the
native drag session started by tauri-plugin-drag: the drag either does
nothing (no file dropped into Finder/DAW) or crashes with EXC_BAD_ACCESS
in AppKit's NSViewAlignRect. Disabling the webview handler is the
documented requirement for the native drag plugin, and the app doesn't
consume inbound native drops anyway. Windows was unaffected.

Skips the unrelated `tao = "0.30"` change from upstream PR Robert-K#28: tauri
already pins the newer tao 0.34.3, and that pin would only add a second,
older tao to the tree without changing the one actually used.

Also adds a build-macos-test workflow that produces an arm64 .dmg as a
downloadable artifact (no release) for testing on Apple Silicon.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant