Skip to content

Bug Report: QGIS crashes/relaunches repeatedly when enabling SCP on Apple Silicon Mac #449

Description

@namratapatil9813

Summary
QGIS crashes with EXC_BAD_ACCESS (SIGSEGV) immediately when the Semi-Automatic Classification Plugin is enabled/ticked in the Plugin Manager, causing QGIS to enter a repeated crash-and-relaunch loop (multiple QGIS windows opening in succession). This is fully reproducible across multiple clean installs.

Environment

  • macOS version: 26.5.2 (build 25F84)
  • Hardware: Mac14,2 (Apple Silicon / ARM64)
  • QGIS version: 3.44.12-Solothurn (code revision 32c5dba7)
  • Qt version: 5.15.18
  • Python version: 3.12.11
  • SCP version tried: both the current "master" release (8.0) and an earlier 7.x release — same crash on both

Steps to Reproduce

  1. Fresh install of QGIS 3.44.12 on Apple Silicon Mac (also reproduced after a full reinstall with a fresh profile)
  2. Install Semi-Automatic Classification Plugin via Plugin Manager (also reproduced via "Install from ZIP" with an older release)
  3. Correctly install all required Python dependencies (numpy 1.26.4, scipy 1.13.1, matplotlib 3.9.2, Pillow, pyparsing, cycler, kiwisolver, contourpy, fonttools, packaging, remotior_sensus) matched to QGIS's bundled Python 3.12 environment — confirmed all import successfully standalone
  4. Tick the checkbox to enable Semi-Automatic Classification Plugin in Plugins → Manage and Install Plugins → Installed
  5. QGIS immediately crashes and begins repeatedly relaunching itself (multiple windows open in succession)

Expected Behavior
Plugin should load and its dock/toolbar should appear without crashing QGIS.

Actual Behavior

Immediate segmentation fault, followed by a crash-relaunch loop requiring force-quitting QGIS via Activity Monitor / Force Quit multiple times to stop.

Crash Report Details (from macOS Console → Crash Reports)

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype:     KERN_INVALID_ADDRESS at 0x0000000000000008
Termination Reason:    Namespace SIGNAL, Code 11, Segmentation fault: 11
Triggered by Thread:   0, Dispatch Queue: com.apple.main-thread

Relevant frames from the crashed thread (Thread 0), from most recent call:

PyDict_GetItemWithError
_PyEval_BuiltinsFromGlobals
PyEval_EvalCode
QgsPythonUtilsImpl::runStringUnsafe(QString const&, bool)
QgsPythonUtilsImpl::runString(QString const&, QString, bool)
QgisApp::loadPythonSupport()
QgisApp::QgisApp(QSplashScreen*, QFlags<QgisApp::AppOption>, QString const&, QString const&, QWidget*, QFlags<Qt::WindowType>)
main

Binary images loaded at crash time include:

libqgis_app.3.44.6.dylib
libqgis_gui.3.44.6.dylib
libqgis_native.3.44.6.dylib
libQt5Widgets.5.15.dylib / libQt5Gui.5.15.dylib / libQt5Core.5.15.dylib

Troubleshooting Already Attempted (all unsuccessful, same crash persists)

  • Full reinstall of QGIS (fresh app + fresh profile, deleted ~/Library/Preferences/org.qgis.qgis3.plist)
  • Cleared all __pycache__ folders in the profile's python directory
  • Manually installed matching dependency versions via pip._internal targeting QGIS's bundled Python, using --no-deps, then --upgrade --force-reinstall to ensure a fully consistent dependency set (no version conflicts reported)
  • Verified numpy, scipy, matplotlib, PIL, remotior_sensus all import successfully when run manually in the QGIS Python Console
  • Tried an older SCP release (~1-2 years old) via "Install from ZIP" — identical crash
  • Installed QPIP (Python dependency manager plugin) and used it to install the missing remotior-sensus dependency it flagged — identical crash persists even with QPIP-managed dependencies

Additional Notes

  • The crash occurs specifically inside QgsPythonUtilsImpl::runStringUnsafe, suggesting the fault is in how a Python string is being evaluated during plugin startup, rather than a missing/mismatched compiled library (since dependency versions have been verified independently working).
  • Happy to provide the full crash report (.ips file) or test further build/config combinations if that would help debug this.

Attachments

  • Full crash report (.ips) — available on request
  • Screenshot of red error dialogs seen prior to the crash-loop starting (module errors for scipy/matplotlib/PIL/pyparsing/cycler/remotior_sensus, all resolved before this crash occurred)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions