Bug Report: Aspose.CAD for Python crashes on macOS 26 (Sequoia) with EXC_GUARD exception
Environment
- OS: macOS 26.2 (Sequoia) - Build 25C56
- Architecture: Apple Silicon (ARM64)
- Python: 3.9.6
- Aspose.CAD: 26.3.0
- Hardware: Mac16,8 (Apple Silicon)
Description
Aspose.CAD for Python crashes immediately upon import on macOS 26 (Sequoia). The process is terminated by the OS with EXC_GUARD exception.
Root Cause Analysis
The crash occurs during CoreCLR initialization. The stack trace shows:
CorUnix::CPalThread::EnableMachExceptions()
-> thread_swap_exception_ports()
-> EXC_GUARD exception triggered
CoreCLR (which Aspose.CAD uses internally) attempts to call thread_swap_exception_ports to set up Mach exception handling. However, macOS 26 has introduced stricter security policies that prohibit this operation for non-authorized processes, causing the OS to terminate the process with SIGKILL.
Crash Log (excerpt)
"exception" : {
"port": 2147483649,
"type": "EXC_GUARD",
"subtype": "GUARD_TYPE_MACH_PORT",
"violations": ["SET_EXCEPTION_BEHAVIOR"],
"message": "SET_EXCEPTION_BEHAVIOR on mach port 2147483649 (guarded with 0x000000000000007e)"
}
Stack Trace
frame #0: mach_msg2_trap
frame #1: mach_msg2_internal
frame #2: thread_swap_exception_ports
frame #3: CorUnix::CPalThread::EnableMachExceptions()
frame #4: CorUnix::CreateThreadData
frame #5: Initialize
frame #6: PAL_InitializeCoreCLR
frame #7: coreclr_initialize
frame #8: HostEnvironment::create_default_app_domain()
frame #9: initialize_clr_host
frame #10: PyInit_pygc
Steps to Reproduce
import aspose.cad as cad # Process crashes here with SIGKILL
Minimal Reproduction
python3 -c "import aspose.cad"
# Process terminates with exit code 137 (SIGKILL)
Expected Behavior
Aspose.CAD should successfully import and allow DWG file operations.
Actual Behavior
Process is immediately terminated by macOS security mechanisms.
Impact
Aspose.CAD for Python is completely unusable on macOS 26 (Sequoia).
Suggested Fix
Update CoreCLR or the PAL (Platform Abstraction Layer) to comply with macOS 26’s stricter security requirements for Mach port access. Consider:
- Using alternative exception handling mechanisms that don’t require
thread_swap_exception_ports - Checking for macOS version and using compatible APIs
- Adding entitlements or providing guidance on required entitlements
Workaround
Currently no workaround available for macOS 26. Users need to:
- Use alternative tools (ODA File Converter + ezdxf)
- Run in a Linux VM or Docker container
- Downgrade macOS (not recommended)
Related
- This is a known issue with CoreCLR on macOS Sequoia
- Similar issues have been reported in .NET runtime repositories
Date
2026-04-27
Please let me know if you need additional crash logs or system information.