Crash on macOS 27 when displaying QMessageBox with Qt/PySide6
Environment
- macOS 27.0 (build 26A428)
- Apple Silicon (ARM64)
- Python 3.12.14
- PySide6 6.11.2
- Qt 6.11.2
- DashcamCleaner running from the current Python virtual environment
- FFmpeg 9.0.1
Problem
After upgrading the Mac to macOS 27, DashcamCleaner crashes with a native SIGTRAP when a modal QMessageBox is displayed using QMessageBox.exec().
The crash does not produce a Python traceback. The macOS crash report shows the following relevant call chain:
NSAlert runModal
→ libqcocoa
→ QtWidgets QDialog::exec()
→ QMessageBox
→ Python
The crash report also contains:
CoreUI -[CUINamedVectorGlyph _rasterizeImageUsingScaleFactor...]
and:
Foundation -[NSCalendarDate initWithCoder:]
Important observation
The actual video processing works correctly.
FFmpeg successfully creates the processed video, but the application then crashes when DashcamCleaner tries to display the completion message box.
For example, the terminal output showed that FFmpeg completed successfully and the output file redacted.mp4 was created, followed immediately by:
zsh: trace trap python dashcamcleaner/main.py
Workaround
Replacing the modal message box in blur_wrapper_finished():
msg_box = QMessageBox()
...
msg_box.exec()
with a normal status message, for example:
print(message)
self.ui.label_status.setText(message)
prevents the crash.
The same issue was also found in the setup_blurrer() function, where the successful model-loading message used:
msg_box.exec()
Replacing that modal dialog with a simple print() also restored normal operation of the model-selection dropdown.
Result
After replacing these modal QMessageBox.exec() calls, DashcamCleaner works normally again on macOS 27, including:
- starting the application
- selecting different YOLO models
- processing the video
- running FFmpeg
- creating the redacted output video
This appears to be related to the interaction between Qt/PySide6’s native Cocoa dialog handling and macOS 27, rather than to the video-processing or FFmpeg code itself.
I hope this helps identify the compatibility issue for other macOS 27 users.
Crash on macOS 27 when displaying QMessageBox with Qt/PySide6
Environment
Problem
After upgrading the Mac to macOS 27, DashcamCleaner crashes with a native SIGTRAP when a modal QMessageBox is displayed using QMessageBox.exec().
The crash does not produce a Python traceback. The macOS crash report shows the following relevant call chain:
NSAlert runModal → libqcocoa → QtWidgets QDialog::exec() → QMessageBox → Python
The crash report also contains:
CoreUI -[CUINamedVectorGlyph _rasterizeImageUsingScaleFactor...]
and:
Foundation -[NSCalendarDate initWithCoder:]
Important observation
The actual video processing works correctly.
FFmpeg successfully creates the processed video, but the application then crashes when DashcamCleaner tries to display the completion message box.
For example, the terminal output showed that FFmpeg completed successfully and the output file redacted.mp4 was created, followed immediately by:
zsh: trace trap python dashcamcleaner/main.py
Workaround
Replacing the modal message box in blur_wrapper_finished():
msg_box = QMessageBox()
...
msg_box.exec()
with a normal status message, for example:
print(message)
self.ui.label_status.setText(message)
prevents the crash.
The same issue was also found in the setup_blurrer() function, where the successful model-loading message used:
msg_box.exec()
Replacing that modal dialog with a simple print() also restored normal operation of the model-selection dropdown.
Result
After replacing these modal QMessageBox.exec() calls, DashcamCleaner works normally again on macOS 27, including:
This appears to be related to the interaction between Qt/PySide6’s native Cocoa dialog handling and macOS 27, rather than to the video-processing or FFmpeg code itself.
I hope this helps identify the compatibility issue for other macOS 27 users.