macOS sandbox blocks hw.optional.neon sysctl, causing Qt arm64 builds to fail with “Incompatible processor” inside Codex
What version of Codex is running?
codex-cli 0.61.0
What subscription do you have?
Pro
Which model were you using?
5.1
What platform is your computer?
Darwin 24.6.0 arm64 arm
What issue are you seeing?
On Apple Silicon (macOS arm64), Codex’s macOS sandbox mode appears to block access to certain hardware-related sysctl keys, specifically hw.optional.neon. Qt uses these sysctls at startup to detect the CPU features available on the host machine.
When running Qt-based test binaries (or qmake) inside Codex (in default sandbox mode), Qt’s SIMD feature detection fails, and Qt aborts with the following fatal error:
Incompatible processor. This Qt build requires the following features:
neon
Outside of Codex — in a normal terminal session, or when bypassing the sandbox — the exact same binary runs correctly, as expected. Apple Silicon always supports NEON for arm64, so this failure indicates that the sandbox interferes with runtime feature probing rather than the CPU lacking support.
What steps can reproduce the bug?
Run qmake from macos
codex sandbox macos --full-auto /Users/cave/Qt/6.8.3/macos/bin/qmake
Incompatible processor. This Qt build requires the following features:
neon
What is the expected behavior?
qmake should be able to run.
Additional information
_No response_
3 Comments
I can reproduce what looks like the same root issue through Julia plotting on Apple Silicon macOS.
Environment:
So Julia itself is MacPorts-managed, but the Qt runtime used by the plotting stack is Julia’s Qt6Base_jll, not MacPorts Qt.
In a restricted Codex sandbox session, a simple Julia plot that writes a PNG aborts with:
Incompatible processor. This Qt build requires the following features: neon
Minimal reproduction:
julia -e 'using Plots; x = range(0, 2pi; length=300); y = sin.(x); p = plot(x, y); savefig(p, "/tmp/test.png")'
In my case:
So this seems consistent with the sandbox affecting Qt runtime feature detection or the runtime environment seen by the GR Qt helper, rather than the machine actually lacking NEON.
If you want to mention the related issues too, add one final line:
This seems closely related to #7099, and possibly more broadly to #11210, in the sense that the macOS sandbox appears to interfere with runtime CPU/hardware detection.
If you're able to upgrade to Qt 6.10 or Qt 6.11 the problem goes away.
On Thu, Apr 9, 2026 at 3:13 PM YAO, Yuki @.***> wrote:
We reproduced this exact failure in the Codex macOS app environment on Apple Silicon while working on a Python/PyQt6 application.
With the previously used runtime (
PyQt6==6.7.1, resolvingPyQt6-Qt6==6.7.3), the smallest reproduction was:It aborts before Python can handle an exception:
The failure occurs during native QtCore initialization, not in application code. We also tested
QT_NO_CPU_FEATURE=neonandQT_NO_CPU_FEATURES=neon; neither changed the result. A newer PyQt6/Qt6 pair worked in the same isolated environment, but we are treating that as a workaround rather than proof that an application-wide upgrade is safe.This reproduced behavior is consistent with the sandbox blocking Qt’s
hw.optional.neonhardware-feature probe. Apple Silicon should support NEON, so the message appears to reflect the sandboxed probe result rather than a missing CPU capability. The project’s existing PDF path also works by using PyMuPDF to rasterize PDF pages and ordinary Qt image widgets; it does not load QtPdf/QPdfView.For reference, the affected application is AutoClean EEG, and the native Qt failure is reproducible before importing MNE, pandas, or the application’s PDF code.