Windows ARM64 app crash-loops on launch — ChatGPT.exe exports no napi_* symbols, serialport addon dies with delay-load 0xC06D007F

Resolved 💬 87 comments Opened Jul 15, 2026 by LukeWHolliday Closed Jul 17, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

Summary

The Codex desktop app on Windows ARM64 crash-loops: the window appears, runs for ~10–15 seconds, then the whole app exits. No error dialog, no Windows Application Error event — but Crashpad writes a minidump on every launch. Reinstalling (including wiping all LocalCache app data) does not help; a fresh install crashes on first launch.

Symptoms match #27574, but I was able to root-cause it from the minidump on my machine.

Environment

  • Device: Surface, Windows 11 on ARM64 (Snapdragon / Qualcomm Adreno GPU), OS build 10.0.26200
  • App: OpenAI.Codex MSIX from Microsoft Store, version 26.707.9981.0, arm64 (OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0)
  • Crashing process: Electron main process (ptype=browser in the Crashpad annotations)

Root cause (from minidump analysis)

Exception code is 0xC06D007F — the VC++ delay-load helper's "procedure not found" exception, raised from KERNELBASE!RaiseException.

Parsing the DelayLoadInfo structure pointed to by the exception parameter:

  • Failing (importing) module: app\resources\app.asar.unpacked\node_modules\@worklouder\device-kit-oai\node_modules\@worklouder\wl-device-kit\node_modules\serialport\node_modules\@serialport\bindings-cpp\prebuilds\win32-arm64\node.napi.node
  • Delay-loaded DLL name: node.exe
  • Missing procedure: napi_create_function
  • hmodCur (module the delay-load resolved to): ChatGPT.exe — i.e. the node-gyp delay-load hook correctly redirected node.exe to the host executable.

So the redirect works, but the host exe doesn't have the symbol. Reading the PE export table of the ARM64 ChatGPT.exe confirms it: the export directory contains only 2 named exports, and zero napi_* / node_api_* symbols. A healthy Electron executable exports the full Node-API surface. The ARM64 build appears to have been linked without the Node export list.

Any NAPI prebuilt that loads in the main process will therefore kill the app; on my machine the trigger is the serialport addon loaded by @worklouder/device-kit-oai roughly 10–15 seconds after startup.

Why it looks like a sudden regression

The app ran fine for ~9 hours overnight (July 14→15), then began crash-looping on every launch the morning of July 15 with no local changes, no app update (same version before/after), and it still crashes after a complete uninstall + data wipe + fresh Store install. That strongly suggests the device-kit/serialport load is gated by a server-side (Statsig) feature flag that was recently enabled — which would mean every Windows ARM64 user is affected as of that flag flip.

If that's right, there are two fixes:

  1. Short term: turn the flag off for win32/arm64 (or skip loading @worklouder/device-kit-oai when the host exe lacks NAPI exports).
  2. Proper fix: link the ARM64 ChatGPT.exe with the Node-API export list like the x64 build.

Repro

  1. Windows 11 ARM64 machine.
  2. Install Codex app from the Microsoft Store (26.707.9981.0).
  3. Launch. Window appears, app exits ~10–15 s later.
  4. A new .dmp appears in %LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Roaming\Codex\web\Codex\Crashpad\reports\ with exception 0xC06D007F.

Happy to share a minidump privately if useful.

Possibly related

  • #27574 (same disappear-after-launch symptom on x64 — may or may not be the same cause)
  • Unrelated but observed in logs: the updater polls a "primary runtime manifest" that 404s every 30 s for this build (primary_runtime_update_poll_failed ... 404 Not Found).

View original on GitHub ↗

87 Comments

github-actions[bot] contributor · 5 days ago

Potential duplicates detected. Please review them and close your issue if it is a duplicate.

  • #33380
  • #33376
  • #33375

Powered by Codex Action

causer · 5 days ago

Independent confirmation from another Windows 11 ARM64 system (Surface Laptop 7) running Codex Desktop 26.707.9981.0 arm64.

I parsed a Crashpad minidump and got the same delay-load failure:

  • exception: 0xC06D007F
  • delay-loaded DLL: node.exe
  • missing procedure: napi_create_function
  • failing addon: @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • load path: @worklouder/device-kit-oai -> @worklouder/wl-device-kit -> serialport

I also traced the packaged renderer/main-process code. The Codex Micro bridge is gated by the numeric Statsig gate 3207467860. When enabled, the bridge calls codexMicro.getState() on mount; the main-process service then lazily requires @worklouder/device-kit-oai, which loads the failing native addon. No Codex Micro / Work Louder device was connected or explicitly enabled.

Timeline from the app logs:

  • the same app version ran normally for several hours;
  • the last healthy session completed a successful Statsig value refresh;
  • the next launch entered the crash loop;
  • every subsequent launch exited within roughly 6–11 seconds.

Additional isolation:

  • Windows app Repair completed successfully but did not change the behavior;
  • launching with a fresh temporary Chromium user-data directory reproduced the same crash;
  • Microsoft Defender recorded no detection/block event and Code Integrity recorded no relevant block;
  • two reproductions occurred while Defender real-time protection was temporarily disabled during a Defender servicing window.

This makes the server-side gate explanation substantially stronger and rules out local profile corruption or Defender interference on this machine.

Suggested immediate mitigation: disable gate 3207467860 for win32/arm64, or avoid initializing Codex Micro unless the integration is explicitly enabled and the native addon can load safely. I can provide the minidump privately if needed.

TibbleForkDave · 5 days ago

Independent confirmation from a third Windows 11 ARM64 machine (Snapdragon, 12 cores, OS build 10.0.26200) — Codex Desktop 26.707.9981.0 arm64 from the Microsoft Store, same crash loop starting the morning of July 15.

Minidump analysis matches the OP exactly:

  • exception 0xC06D007F raised from KERNELBASE.dll (delay-load helper)
  • DelayLoadInfo: szDll = node.exe, szProcName = napi_create_function, dwLastError = 127 (ERROR_PROC_NOT_FOUND)
  • hmodCur = base of ChatGPT.exe (so the node.exe→host-exe redirect worked; the export is simply missing)
  • failing module: app.asar.unpacked\node_modules\@worklouder\device-kit-oai\...\@serialport\bindings-cpp\prebuilds\win32-arm64\node.napi.node
  • crashing thread stack: ntdll loader frames + KERNELBASE + node.napi.node, i.e. death during N-API module registration

Additional data points:

  • Two launches this morning, both identical: window appears (rendererWindowVisible=true in the main-process log), then the log stops cold ~9–17 s after process start and the Crashpad dump is written <1 s later. No graceful-shutdown lines.
  • This machine does have real USB serial devices attached (embedded dev boards), and the crash presents identically to the reports from machines with none — consistent with the server-side gate theory rather than device enumeration being the trigger.
  • Same unrelated primary_runtime_update_poll_failed ... 404 Not Found noise in the logs as the OP.

Happy to provide the 44 MB minidump privately if useful.

adamhep-ai · 5 days ago

Independent confirmation on another Windows 11 ARM64 machine.

Environment:

  • Windows build: 10.0.26200, ARM64, 12 logical processors
  • Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Desktop release in logs: 26.707.72221
  • Bundled app-server: 0.144.2

Reproduction:

  • Launch creates 6 processes initially, then 8 processes by ~3.5 seconds.
  • The complete ChatGPT.exe process tree disappears at ~7 seconds.
  • A fresh Crashpad dump is written (44,594,842 bytes).
  • Reinstalling the same Store package did not help.

I independently decoded the minidump's exception stream and DelayLoadInfo and got the same result:

  • Exception: 0xC06D007F
  • Exception address: KERNELBASE.dll+0x1233c4
  • Importing module: @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • Dependency chain: @worklouder/device-kit-oai -> @worklouder/wl-device-kit -> serialport
  • Delay-loaded DLL: node.exe
  • Missing procedure: napi_create_function
  • dwLastError: 127
  • hmodCur: base address of packaged ChatGPT.exe

The desktop log reaches a rendered/ready main window and initializes the in-app browser backend, then ends abruptly. Recoverable WSL-not-installed and SSH-authentication warnings are present but do not own the native exception.

The dump is available privately if an OpenAI maintainer provides a safe upload route; I am not attaching it publicly because it may contain process memory. This corroborates that the issue is deterministic in the shipped ARM64 package / enabled Codex Micro path, rather than corrupted user state.

davidz91800 · 5 days ago

I can reproduce this issue on a Snapdragon X Elite Windows ARM64 machine.

Environment:

  • Codex Desktop: 26.707.9981.0
  • Package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Windows 11 ARM64 build 26200/26220
  • CPU: Qualcomm Snapdragon X Elite X1E78100
  • Bundled app-server: 0.144.2
  • Separately installed Codex CLI: 0.144.4 aarch64-pc-windows-msvc

Observed behavior:

  • The desktop window opens normally.
  • The app-server initialization handshake succeeds.
  • The bundled Codex CLI initializes successfully.
  • The window reaches ready-to-show.
  • Approximately 7–12 seconds later, the entire desktop process exits.
  • No Application Error event or standard crash dump is created.
  • The standalone terminal CLI continues to work normally.

I also see the primary-runtime manifest 404 and the absence of a windows-aarch64 entry in the primary-runtime configuration, but these may only be correlated symptoms rather than the direct cause.

Reinstalling, repairing, resetting, disabling WSL execution, switching sandbox modes, and clearing Codex state did not resolve the issue.

ewrogers · 5 days ago

Second on this, just started having this happen this morning. I thought it was related to Windows 11 updates or my Parallels VM so I started digging. Ironically enough, I use this VM for reverse engineering and dump analysis... how fitting.

ChatGPT Windows ARM64 startup crash
Package: OpenAI.Codex 26.707.9981.0 arm64
Internal release: 26.707.72221
Environment: Windows 11 ARM64 build 26200, Parallels ARM VM
Exception: 0xc06d007f / ERROR_PROC_NOT_FOUND
Process: ChatGPT.exe
Faulting module: node.napi.node
Failure bucket:
APPLICATION_FAULT_c06d007f_node.napi.node!Unknown
Failure hash:
{452a3e12-0781-9875-9e9b-b5a1825deba5}
Native module:
@serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node

I tried reset/re-install, GPU-cache removal, and disabling GPU acceleration. None of that resolved it. After finding the crash dumps I put them through WinDbg and traced it to this serial port plugin that seems to have a missing binding (ERROR_PROC_NOT_FOUND).

Setting computer_use = false and apps = false in config.toml does not fix it either.

The real fix is to update the arm64 package for the serialport, or allowing it to be gracefully disabled instead of this hard crash.

blockpilgrim · 5 days ago

Independent confirmation from a Surface Laptop 7 (Windows 11 Enterprise ARM64 build 26200) using Store package OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0.

The app had remained healthy in one long session from July 14 until a restart on July 15. Every launch after the restart exited within roughly 6-8 seconds. A Crashpad dump decodes to the same failure reported here:

  • exception 0xC06D007F
  • delay-loaded DLL node.exe
  • missing procedure napi_create_function
  • last error 127
  • importing module @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • dependency path @worklouder/device-kit-oai -> @worklouder/wl-device-kit -> serialport

The restart happened immediately after adding an Azure DevOps MCP server, which initially made MCP look suspicious. I verified the MCP configuration separately with Codex CLI (codex mcp list and codex mcp get azure-devops --json), confirmed that the server transport/config parses and launches, and observed that the desktop app-server completes its handshake before the native browser-process crash. This is useful isolation: MCP was only the reason for restarting the desktop app, not the failing subsystem.

I also ran the current Microsoft-signed installer from OpenAI's official download link. It retained the same Store package version and reproduced the crash with a new 44 MB dump at 18:15:21 local time. I have not attached the dump publicly because it may contain process memory and local identifiers.

This independently confirms that repair/reinstall and MCP removal are not viable mitigations; disabling the Codex Micro gate for win32/arm64 remains the safest immediate rollback.

Z2ZATL · 5 days ago

▎ Corroborating the Statsig theory with hard timeline evidence from my machine (Surface, Snapdragon X Plus, 26.707.9981.0): the app ran fine on this exact version for ~24h (installed Jul 14 15:38 UTC), including an 11-hour session on Jul 15. That session died mid-use at Jul 15 15:51:13 UTC — the same second a [statsig-refresh-diagnostics] interval refresh completed successfully (refresh started trigger=interval → values updated hasValues=true → refresh finished success=true at 15:51:12.645–15:51:13.039, then the log ends abruptly). Every launch since crashes seconds after ready provider mounted reads the cached values; survives OS reboot.

▎ Decoded the Crashpad DelayLoadInfo from my dump: szDll=node.exe, proc=napi_create_function, dwLastError=127, hmodCur = ChatGPT.exe base — whose export table contains only GetHandleVerifier and IsSandboxedProcess (zero napi_*). Faulting addon: ...\@worklouder\device-kit-oai\...\@serialport\bindings-cpp\prebuilds\win32-arm64\node.napi.node, ptype=browser.

▎ This looks revertible server-side without shipping a new build — please consider rolling back the flag for win32-arm64 desktop clients.

FFFalexgo · 5 days ago

Independent confirmation from another Windows 11 ARM64 system.

Environment

  • Windows build: 10.0.26200, ARM64
  • CPU: Qualcomm Snapdragon X Elite X1E80100 (12 cores)
  • GPU: Qualcomm Adreno X1-85, driver 31.0.133.1
  • Microsoft Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Desktop release in logs: 26.707.72221
  • Electron/Chrome runtime: 150.0.7871.115
  • Bundled app-server: 0.144.2

Reproduction and dump evidence

  • The main window reaches ready-to-show, the renderer mounts, and the app-server initialization handshake succeeds.
  • The entire desktop process exits roughly 7 seconds after launch.
  • Every launch creates a new Crashpad dump; the inspected dump was 44,427,264 bytes.
  • Decoding the exception stream and DelayLoadInfo produced:
  • exception: 0xC06D007F
  • delay-loaded DLL: node.exe
  • missing procedure: napi_create_function
  • dwLastError: 127 (ERROR_PROC_NOT_FOUND)
  • hmodCur: base address of the packaged ChatGPT.exe
  • importing module: @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • dependency path: @worklouder/device-kit-oai -> @worklouder/wl-device-kit -> serialport
  • Repairing, uninstalling, and reinstalling the same Store build did not help; the fresh package reproduced immediately.
  • The bundled app-server and account/API requests initialize successfully before the native browser-process crash. The logged WSL-not-installed message is recoverable and does not own the exception.

This independently matches the OP's native ARM64/N-API failure. I can provide the Crashpad dump privately if an OpenAI maintainer supplies an appropriate upload channel; I am not attaching it publicly because it may contain process memory.

nxt-ryan · 5 days ago

Independent reproduction with the same root cause.

Environment

  • ASUS Zenbook A14 UX3407QA
  • Windows 11 Home ARM64, build 10.0.26200
  • Microsoft Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • ChatGPT.exe product/file version: 150.0.7871.115
  • Codex CLI 0.144.4 works normally on the same machine

Timeline

Windows AppX deployment history shows the previous Codex build 26.707.9564.0 was working earlier, then build 26.707.9981.0 was registered for this user at 2026-07-15 14:32:53 local time. The first new-build launch log began at 14:32:55 and ended at 14:32:59. Subsequent launches terminated the same way after roughly 4–7 seconds.

This provides an update-correlated reproduction rather than a settings, account, or hardware change.

Minidump confirmation

A 44,351,488-byte Crashpad minidump was produced. Parsing its exception stream and DelayLoadInfo confirms:

  • exception: 0xC06D007F
  • delay-loaded DLL: node.exe
  • missing procedure: napi_create_function
  • resolved module handle: ChatGPT.exe
  • importing native addon loaded from the bundled ARM64 @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node under @worklouder/device-kit-oai

The desktop log ends abruptly immediately after normal initialization; unrelated WSL-not-installed and stale remote-connection warnings occur earlier but do not explain the native exception.

Controls

  • Microsoft Store reports no newer build.
  • The separately installed native ARM64 ChatGPT Classic app remains stable for more than two minutes with zero crash dumps/events.
  • Codex CLI remains functional.
  • Resetting Windows, GPU changes, or installing WSL should not be necessary for this failure class.

I have retained the minidump but am not attaching it publicly because it may contain process memory. It can be provided through a private OpenAI upload channel if needed.

NoSilver78 · 5 days ago

Independent confirmation — and one data point the thread doesn't have yet: full local-state bisection proving the trigger is server-side.

Environment: Windows 11 Pro ARM64 build 26100, Parallels VM on Apple Silicon, Store package OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0 (installed Jul 14), desktop release 26.707.72221. Codex CLI 0.144.2 works fine on the same machine.

Same minidump signature as OP: 0xC06D007F from the delay-load helper, missing procedure napi_create_function, crashing stack walks through @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node (via @worklouder/device-kit-oai). App boots the full UI, dies ~11–15 s after launch, every launch.

Bisection — crash persists through ALL of these (each verified individually):

  • Reset-AppxPackage (AppContainer verifiably deleted + recreated — AppModel events 41/39)
  • pristine %USERPROFILE%\.codex (renamed away entirely; not even logged in)
  • Chromium GPU/shader caches cleared, plugin marketplace cache/staging cleared
  • no Windows updates that day, no changed system DLLs, no Defender detection, no COM ports present, Node on PATH unchanged

Since a completely fresh container + fresh user profile still crash on unchanged signed binaries, the trigger cannot be local state — consistent with the Statsig rollout theory. Our onset: app ran ~18 h on this version, first crash Jul 15 16:20:21Z (leftover atomic-write temp file pins the second), matching the timeline in the comment above.

Happy to share minidumps privately.

aonbrowser · 5 days ago

Independent confirmation from another Snapdragon X Elite ARM64 machine, plus a verified non-destructive local
mitigation.

### Environment

  • Device: ASUS Vivobook S 15 S5507QA
  • OS: Windows 11 Pro 25H2 ARM64, build 10.0.26200.8875
  • CPU: Snapdragon X Elite X1E78100, 12 logical processors
  • GPU: Qualcomm Adreno X1-85, driver 31.0.137.0
  • Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Desktop release in logs: 26.707.72221
  • ChatGPT.exe product/file version: 150.0.7871.115
  • Bundled app-server: 0.144.2

### Timeline and reproduction

The app had worked normally for months and then exited suddenly while it was already running. After that, every launch
showed the workspace briefly and the complete ChatGPT.exe process tree disappeared approximately seven seconds after
process start.

Important timeline clarification: I uninstalled and reinstalled 26.707.9981.0 after the initial crash, in an attempt
to repair it. The reinstall did not cause the first failure and did not fix it.

The following did not help:

  • Microsoft Store Repair
  • uninstall/reinstall of the same Store package
  • --disable-gpu
  • unplugging the external USB receiver
  • cache/service-state isolation
  • five separate temporary/fresh Chromium user-data profiles

Every isolated profile produced its own Crashpad dump, ruling out profile corruption. I did not reset the real profile
because its projects and sessions were important.

A Windows cumulative update had been installed earlier, which initially made the OS update look suspicious. However,
no Windows update rollback was needed: the mitigation below works on the same 26200.8875 build. The native exception
also points entirely inside the packaged Codex dependency chain.

### Minidump confirmation

Both the original-profile dump and a clean-profile dump produced the same result:

  • exception: 0xC06D007F
  • raised from: KERNELBASE!RaiseException
  • delay-loaded DLL: node.exe
  • missing procedure: napi_create_function
  • dwLastError: 127 (ERROR_PROC_NOT_FOUND)
  • hmodCur: base address of packaged ChatGPT.exe
  • failing addon: @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • dependency chain: @worklouder/device-kit-oai -> @worklouder/wl-device-kit -> serialport

Additional PE comparison:

  • packaged ARM64 ChatGPT.exe exports only GetHandleVerifier and IsSandboxedProcess
  • chrome.dll exports napi_create_function and the other N-API symbols
  • the working bundled node-pty native addons import N-API from chrome.dll
  • the Work Louder ARM64 node.napi.node and HID.node binaries instead delay-import node.exe

This suggests both Work Louder native addons were packaged as regular Node ARM64 prebuilts rather than Electron-
rebuilt ARM64 binaries. Skipping only serialport may therefore expose the same failure later in HID.node.

The packaged renderer code also confirms that Statsig gate 3207467860 mounts the Codex Micro bridge. The bridge
immediately calls codexMicro.getState(), and the main-process Codex Micro service performs a top-level require of
@worklouder/device-kit-oai before checking whether hardware exists. This explains why unplugging the receiver does not
help.

### Verified local mitigation

This is not an official fix, but it is useful for confirming the diagnosis and restoring access without resetting the
user profile or modifying the signed WindowsApps package.

I used a process-scoped CJS preload which intercepts only @worklouder/device-kit-oai and returns a “no device found”
implementation.

disable-codex-micro.cjs:

'use strict';

const Module = require('node:module');
const originalLoad = Module._load;
const originalRequire = Module.prototype.require;
const target = '@worklouder/device-kit-oai';
const noop = () => {};

class DisabledDeviceDiscovery {
findWLDevices() {
return [];
}
}

class DisabledDeviceComm {
onConnectionEvent() {
return noop;
}

async connect() {}
async disconnect() {}
}

class DisabledDeviceApi {
onHidReceived() {
return noop;
}

onJoystickMove() {
return noop;
}

async sendLightingConfig() {
return false;
}

async sendThreadsLighting() {
return false;
}

async getDeviceStatus() {
return { batteryPercentage: null, isCharging: null };
}
}

const disabledDeviceKit = Object.freeze({
ConnectionEventType: Object.freeze({
CONNECTED: 'connected',
DISCONNECTED: 'disconnected',
ERROR: 'error',
}),
DeviceType: Object.freeze({
Project2077: 'Project2077',
}),
OAILightingEffect: Object.freeze({
off: 0,
breath: 1,
solid: 2,
snake: 3,
}),
RPCApiOAI: DisabledDeviceApi,
WLDeviceCommImpl: DisabledDeviceComm,
WLDeviceDiscovery: DisabledDeviceDiscovery,
});

Module._load = function (request, parent, isMain) {
if (request === target) return disabledDeviceKit;
return Reflect.apply(originalLoad, this, [request, parent, isMain]);
};

Module.prototype.require = function (request) {
if (request === target) return disabledDeviceKit;
return Reflect.apply(originalRequire, this, [request]);
};

I launch only the affected version with a process-local NODE_OPTIONS. I do not use setx or modify the global
environment:

$pkg = Get-AppxPackage -Name OpenAI.Codex

if ($pkg.Version.ToString() -ne '26.707.9981.0') {
throw "This workaround was verified only on 26.707.9981.0."
}

$hook = Join-Path $env:LOCALAPPDATA `
'OpenAI-Codex-Workarounds\disable-codex-micro.cjs'

$exe = Join-Path $pkg.InstallLocation 'app\ChatGPT.exe'
$oldNodeOptions = $env:NODE_OPTIONS

try {
$safeOption = "--require=$hook"

$env:NODE_OPTIONS = if (
[string]::IsNullOrWhiteSpace($oldNodeOptions)
) {
$safeOption
} else {
"$safeOption $oldNodeOptions"
}

Start-Process -FilePath $exe
}
finally {
if ($null -eq $oldNodeOptions) {
Remove-Item Env:NODE_OPTIONS -ErrorAction SilentlyContinue
} else {
$env:NODE_OPTIONS = $oldNodeOptions
}
}

### Verification

With that preload:

  • the Work Louder require was intercepted
  • the normal signed package and original user profile were used
  • OAuth and session files were untouched
  • 12 saved workspaces and 61 projectless thread IDs remained present
  • the app remained running for 1,901 seconds at the last check
  • eight ChatGPT.exe processes were responsive
  • one visible main window remained open
  • zero new Crashpad dumps were created

The limitation is that Codex Micro / Work Louder hardware integration is disabled. Other tested desktop functionality
remains available.

The safest immediate vendor mitigation is still to disable gate 3207467860 for win32/arm64. The proper package fix
appears to be rebuilding both Work Louder native addons for Electron ARM64, or guarding/lazily loading the entire
device integration so a native-addon failure cannot terminate the main process.

tylben85 · 5 days ago

Independent confirmation — Surface Laptop 7 / Snapdragon X1-85

I am independently experiencing this exact crash on Windows ARM64.

Environment

  • Device: Microsoft Surface Laptop
  • Processor: Snapdragon X1-85
  • Architecture: Windows ARM64
  • Codex Store package: OpenAI.Codex 26.707.9981.0

Behavior

Codex was running normally through a long overnight session. When I returned the next morning, the application was closed.

Since then, every cold launch behaves the same way:

  1. Codex opens normally.
  2. The main interface appears briefly.
  3. The entire application exits approximately 6 seconds later.
  4. No error dialog is displayed.

Windows AppModel-Runtime shows the Codex AppX container being created successfully and then destroyed approximately 6 seconds later. There is no corresponding normal Application Error event.

Troubleshooting already completed

The crash persists after all of the following:

  • Renaming the existing .codex folder and launching with completely fresh local state
  • Signing into a different ChatGPT account
  • Repairing and resetting the Windows application
  • Uninstalling and reinstalling Codex
  • Testing from a completely new Windows user profile

The crash reproduced identically in every case.

This appears to match the ARM64 0xC06D007F / missing napi_create_function failure described in this issue.

I can provide additional logs or diagnostics privately if an OpenAI maintainer requests them.

nish-brc · 5 days ago

Independent confirmation on Windows ARM64 here

Ianyuyu0204 · 5 days ago

I can independently reproduce this exact issue on another Windows-on-ARM device.

Environment

  • Device: Microsoft Surface Laptop 7 (Snapdragon, ARM64)
  • App package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • App version: 26.707.9981.0
  • Installed from the official Windows distribution / Store package

Reproduction

  1. Launch Codex.
  2. The window initializes and briefly appears.
  3. The app exits automatically after several seconds without an error dialog.
  4. This repeats on every launch.

Evidence collected

  • AppX container creation and process launch both succeed.
  • Codex CLI initialized and the Electron window reaches ready-to-show.
  • React routes mount successfully and account/model/thread requests complete.
  • No relevant Defender, Code Integrity, TWinUI, or Windows Application Error event is generated.
  • Reinstalling the app, resetting AppX data, renaming the entire %USERPROFILE%\.codex directory, and disabling config.toml do not change the behavior.
  • Crashpad creates a new minidump on launch:
  • Size: 44,466,784 bytes
  • Timestamp: 2026-07-16 02:41:45
  • Location: %LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Roaming\Codex\web\Codex\Crashpad\reports\
  • The desktop log also shows the unrelated updater warning primary_runtime_update_poll_failed ... 404 Not Found, matching the report above.

The symptoms and package build match this issue exactly. I can provide the Crashpad .dmp privately to OpenAI engineering if needed.

imocca-web · 5 days ago

Independent confirmation from a Microsoft Surface Pro on Windows 11 ARM64 / Snapdragon.

Environment

  • Windows build: 26200
  • Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Desktop release in logs: 26.707.72221
  • Bundled app-server: 0.144.2
  • Standalone Codex CLI works normally

Reproduction

  • App-server initializes successfully and the window reaches ready-to-show.
  • A visible window appears around second 6.
  • The entire ChatGPT.exe process tree exits by second 8 without a Windows Application Error event.
  • Each launch creates a new Crashpad dump; the latest is 42.54 MB.

Isolation completed

  • Windows and Microsoft Store fully updated, followed by reboot.
  • Administrator launch, GPU-disabled launch, apps=false, fresh user state, and repair/reinstall did not resolve it.
  • A reversible Chromium/GPU cache reset also reproduced the same exit.
  • Authentication, sessions, and standalone CLI remain healthy.
  • WSL is not installed and the WSL warning is non-fatal.

The package, timing, and dump behavior match the ARM64 N-API / @serialport failure documented in this issue. I have retained the minidump and can provide it privately through an OpenAI-approved upload channel; I will not attach it publicly because it may contain process memory.

Vazzyy · 5 days ago

Independent confirmation from another Windows 11 ARM64 device.

Environment

  • Device: Surface Laptop 7, Snapdragon X Plus
  • Windows 11 Home 25H2 ARM64
  • OS build: 26200.8875
  • Codex package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • App version: 26.707.9981.0

Behavior

  • Codex opens and displays the main interface.
  • The entire ChatGPT.exe process exits approximately 6 seconds later.
  • No error dialog appears.
  • Every launch creates a new Crashpad minidump.
  • There is no corresponding Event ID 1000 Application Error record.

WinDbg confirmation

  • Exception: 0xC06D007F
  • Delay-loaded DLL: node.exe
  • Missing procedure: napi_create_function
  • Win32 error: 127 / ERROR_PROC_NOT_FOUND
  • Failing addon:

@serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node

  • Dependency chain:

@worklouder/device-kit-oai -> @worklouder/wl-device-kit -> serialport

  • The resolved module handle points to the packaged ChatGPT.exe.

Troubleshooting completed

  • Repair and reset
  • Complete uninstall/reinstall
  • Fresh Codex local state
  • GPU-disabled launch
  • No related USB/serial vendor software installed

The crash reproduced identically after all of the above. This matches the ARM64 native-addon/runtime incompatibility described in this issue. I have retained the minidump and can provide it privately through an OpenAI-approved upload channel.

fleps · 5 days ago

Confirmed this on a Asus A16 UX3607OA, Snapdragon(R) X2 Elite Extreme - X2E94100 - Qualcomm Oryon(TM) CPU (4.45 GHz)

Windows Information

Edition			Windows 11 Home
Version			26H1
Installed on	‎3/‎15/‎2026
OS build		28000.2525
Experience		Windows Feature Experience Pack 1000.26100.316.0

Completely removed the app multiple times, reinstalled from Store / Direct link from OpenAI, apps runs the first wizard, the second it goes to show the Chat interface, it crashes and continue to crash.

It was working fine yesterday.
Not sure if related but today there were 2 Windows Updates installed on my machine:

rnichollx · 5 days ago

Crashing Windows 11 Arm64 in a Parallels Virtual Machine for me.

dakehero · 5 days ago

Independent confirmation on a Windows 11 ARM64 system with the same Microsoft Store build.

Environment

  • Package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • App executable: app/ChatGPT.exe
  • Global Codex CLI: 0.144.4
  • App-bundled Codex CLI: 0.144.2

Updating the global CLI did not affect the crash because the desktop app launches its own bundled resources/codex.exe. The bundled CLI starts successfully and completes its app-server handshake before the desktop process exits.

Observed failure

In controlled launches, the Electron main process lived for about 5.7 to 7.0 seconds and exited with:

exit code (signed): -1066598273
exception code:     0xC06D007F

The renderer reached its mounted/window-ready state and model loading completed; the log then ended abruptly without a JavaScript fatal error.

A high-frequency loaded-module trace showed the following final native loads:

~4.488 s  resources/native/windows-account.node
~6.743 s  .../@worklouder/device-kit-oai/.../@serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
~6.743 s  C:\Windows\System32\SETUPAPI.dll
~6.969 s  ChatGPT.exe exited with 0xC06D007F

The process terminated approximately 226 ms after the ARM64 serialport prebuild and SETUPAPI.dll loaded. No non-system or non-package injected DLLs were present.

Static inspection of the packaged renderer also confirms that Statsig gate 3207467860 mounts CodexMicroBridge; the bridge calls the Codex Micro service state path, and that service imports @worklouder/device-kit-oai, which loads the nested serialport native addon.

This independently corroborates the report's root-cause area: the optional Codex Micro integration activates on ARM64 and its packaged serialport native module terminates the Electron main process. Repair/reset/reinstall or updating the standalone CLI should not address this package-level failure.

Suggested short-term mitigation remains disabling gate 3207467860 for Windows ARM64 until the native addon/runtime packaging is corrected.

ryenwang · 5 days ago

Same crash here, confirming on another ARM64 machine.

Environment

  • Microsoft Surface Pro, 11th Edition
  • Windows 11 Home Insider Preview 10.0.26300 (build 26300), ARM64
  • Snapdragon X Elite X1E80100 (12-core)
  • Qualcomm Adreno X1-85 GPU, driver 31.0.137.0
  • Store package OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0, app release 26.707.72221
  • Codex CLI works fine standalone

App window appears for ~2.5 s, then the process exits. Reinstalling from the Store does not fix it.

Crash details (from local Crashpad minidump)

  • Exception code 0xC06D007F (VC++ delay-load: procedure not found), dwLastError = 127 (ERROR_PROC_NOT_FOUND), raised via KERNELBASE.dll
  • DelayLoadInfo: szDll = node.exe, missing procedure = napi_create_function; hmodCur resolves to the base of ChatGPT.exe
  • Faulting native module: @worklouder/device-kit-oai/.../@serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • Other native addons loaded at crash time: better_sqlite3.node, windows-updater.node, windows-account.node
  • Byte-scan of the shipped ARM64 app\ChatGPT.exe: 2 exports total, zero napi_* — so the serialport addon's delay-load of napi_create_function can never resolve and takes down the main process
  • Main-process log dead-stops right after permissionProfile/list; Crashpad dump written the same second

Matches the analysis in this thread and the sibling reports.

Calvtw · 5 days ago

Additional confirmation from a third Windows 11 Home ARM64 machine (not a Surface) on Codex Desktop 26.707.9981.0 arm64 — corroborates @causer's serialport/napi delay-load analysis.

Same symptom pattern: the app ran normally for hours, then began crash-looping, with every subsequent launch exiting ~10–15 seconds after the window appears (no error dialog). A Crashpad minidump was generated at the moment of crash.

On this machine the crash-loop onset also coincided with the MSIX auto-update from 26.707.8479.0 → 26.707.9981.0 (AppX deployment log: update completed 14:56:36 local; first crashing session started 14:56:58). Build 8479.0 had been stable for weeks. Consistent with a Statsig gate flip landing around the same window as the update.

No Codex Micro / Work Louder device connected or knowingly enabled. Happy to share the minidump if useful.

iQRADevHQ · 5 days ago

I am experiencing the same crash on a current Windows ARM64 device.

Environment:

  • Device: Microsoft Surface Laptop, 7th Edition
  • Processor: Snapdragon X, 12-core X1E80100 @ 3.40 GHz
  • Architecture: Windows 11 ARM64
  • RAM: 16 GB
  • GPU: Qualcomm Adreno X1-85
  • OpenAI Codex app version: 26.707.9981.0
  • Package:

OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0

  • Subscription: ChatGPT Pro

The app worked normally for several days. Then, without any intentional changes to my computer, it suddenly started closing a few seconds after launch.

The Codex interface loads and becomes visible, but after approximately 8–15 seconds the entire app exits without displaying an error message. A new Crashpad dump is created after each crash.

I have already tried:

  • restarting Windows
  • repairing and resetting the app
  • completely uninstalling and reinstalling the app
  • confirming that no newer Microsoft Store update is available
  • resetting the local Codex app data
  • resetting the .codex folder
  • testing with a second OpenAI account
  • testing from a completely new Windows user account
  • launching with GPU acceleration disabled

None of these steps helped.

The issue also occurs with another OpenAI account and in a fresh Windows user profile. This strongly suggests that it is not caused by my account, my previous conversations, or a corrupted Windows user profile.

The application logs show that the Codex CLI and the main interface initialize successfully before the process exits.

The logs also contain:

“Failed to download primary runtime manifest (404 Not Found).”

However, based on the technical findings in this issue, that message may be unrelated to the actual crash.

My symptoms, device architecture, app version, and Crashpad behavior appear to match the reported Windows ARM64 crash involving the serialport native module.

Could the engineering team please check whether the ARM64 package contains or loads an incompatible @serialport/bindings-cpp module, or whether the required Node-API exports are missing from the ARM64 ChatGPT.exe build?

For affected users, please consider one of the following temporary or permanent solutions:

  1. Disable the affected serialport/device-kit feature for win32/arm64 through a server-side feature flag until the ARM64 build is fixed.
  1. Publish a corrected native Windows ARM64 build.
  1. Provide an official x64 Windows installer or MSIX that Windows ARM64 users can install through x64 emulation.

At the moment, the Microsoft Store automatically installs the ARM64 package and does not allow ARM64 users to select the x64 version manually.

For paying and non-technical users, switching to the CLI or manually configuring an IDE extension is not an adequate replacement for the desktop application.

I have preserved the application logs and Crashpad dump and can provide them privately through an official secure support channel if required. I will not upload the memory dump publicly because it may contain sensitive information.

Thank you for investigating this issue.

PCI-Statmonkey · 5 days ago

Confirming the same issue on a Windows ARM64 Surface.

Device:
Microsoft Surface running Windows 11 ARM64

Codex package:
OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0

Behavior:
The Codex desktop app opens normally, remains visible for approximately 8 seconds, and then closes without displaying an error.

What I have already tried:

  • Repairing the app
  • Resetting the app
  • Uninstalling and reinstalling
  • Restarting Windows
  • Signing out and signing back in
  • Running the app as Administrator
  • Renaming/resetting the .codex folder
  • Removing the saved "local":"auto" value from .codex-global-state.json

None of these steps resolved the problem.

Windows logs show that the application launches successfully:

  • app\ChatGPT.exe is started
  • The OpenAI.Codex AppX container is created successfully
  • The process is added to the container
  • Approximately 8 seconds later, the AppX container is destroyed

There is no conventional Application Error, exception code, Reliability Monitor failure, or failed activation event.

ChatGPT Classic continues to work normally on the same device and account.

This is preventing me from accessing and continuing work on an existing local development project. Based on the identical ARM64 package version and startup behavior reported here, this appears to be the same issue.

Lukie-81 · 5 days ago

I can reproduce this issue.

Device: Microsoft Surface Pro 11

Processor/platform: Snapdragon, Windows 11 ARM64
Codex/ChatGPT app package: OpenAI.Codex
Version: 26.707.9981.0 ARM64

Behaviour:

  • The new ChatGPT/Codex app opens normally.
  • The window remains visible briefly, then the entire app exits by itself.
  • No visible error message appears.
  • The Codex process is no longer running afterward.
  • ChatGPT Classic continues to work normally.

Troubleshooting already attempted:

  • Updated through Microsoft Store
  • Terminated and repaired the OpenAI.Codex app
  • Restarted Windows
  • Checked Microsoft Defender Protection History
  • Checked Defender Operational events and Get-MpThreatDetection
  • No Defender detection or block was recorded
  • No corresponding Application Error event was found
  • Repairing the app did not change the behaviour

I have not reset or deleted the app’s local data.

f-z · 5 days ago

Independent confirmation from another Windows 11 ARM64 system using Store package OpenAI.Codex_26.707.9981.0_arm64.

ProcDump initially reported the same unhandled 0xC06D007F delay-load failure. A subsequent full exception dump captured an additional downstream failure:

exception: 0xC0000005 execute access violation
attempted execute address / PC: 0x0
faulting module: node.napi.node
stack: node_napi+0x8694 → napi_register_module_v1 → Electron/Node module registration
bucket: SOFTWARE_NX_FAULT_NULL_INVALID_POINTER_EXECUTE_c0000005_node.napi.node

This appears consistent with the missing N-API export ultimately resulting in a null function-pointer call, rather than representing a different root cause.

Repair, reset, cache clearing, uninstall/reinstall and reboot did not resolve it. I can provide the full dump privately, but will not attach it publicly because it contains process memory.

WenzelStefan · 5 days ago

Confirm the same, my Hermes Agent provided me the same root-cause. Appreciate a fast fix!

junhaoliao · 5 days ago

one viable mitigation is to disconnect Internet (e.g., turn off Wi-Fi) before launching the Codex app. then only wait until the app is stably running, turn Wi-Fi back on

i suppose the worklouder stuff is gated by StatSig so launching without Internet access should help opting out from the feature. adding ab.chatgpt.com 127.0.0.1 to your hosts file to disable the connection can achieve the similar effect.

causer · 5 days ago
one viable mitigation is to disconnect Internet (e.g., turn off Wi-Fi) before launching the Codex app. then only wait until the app is stably running, turn Wi-Fi back on i suppose the worklouder stuff is gated by StatSig so launching without Internet access should help opting out from the feature. adding ab.chatgpt.com 127.0.0.1 to your hosts file to disable the connection can achieve the similar effect.

I can’t confirm that. The app runs without an internet connection, but when you turn Wi-Fi back on, it crashes after a few seconds.
Also, adding ab.chatgpt.com 127.0.0.1 to hosts file didn't have any effect.

TerraSYNCBIIZ · 5 days ago

Confirming @aonbrowser's preload mitigation works on a Surface Pro X / Snapdragon, Windows 11 ARM64 build 26220, Store package OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0but with one gotcha that will bite anyone who copies the instructions verbatim.

The hook must live OUTSIDE %LOCALAPPDATA%

The instructions place disable-codex-micro.cjs under $env:LOCALAPPDATA\OpenAI-Codex-Workarounds\. On this machine that failed, and it fails silently from the user's point of view — the app dies in ~2s with no Crashpad dump, which looks like a different bug rather than a broken workaround.

stderr shows what's really happening:

ERROR:owl\browser\electron_app_main_process_host.cc:342] Failed to run Electron app from --run-app:
  Failed to bootstrap file:///C:/Program%20Files/WindowsApps/OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0/app/resources/app.asar:
  Error: Cannot find module 'C:\Users\<u>\AppData\Local\OpenAI-Codex-Workarounds\disable-codex-micro.cjs'
Require stack:
- internal/preload

NODE_OPTIONS=--require=... is honored (note internal/preload in the stack — the preload ran). The module just isn't resolvable, because the MSIX Desktop AppX container redirects AppData\Local into ...\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\. A hook stored under the real %LOCALAPPDATA% is invisible to the containerized process.

Fix: put the .cjs anywhere outside AppData. I used C:\Users\<u>\CodexWorkaround\. Same file, same launcher, only the path changed:

$env:NODE_OPTIONS = "--require=C:\Users\<u>\CodexWorkaround\disable-codex-micro.cjs"
Start-Process -FilePath (Join-Path (Get-AppxPackage -Name OpenAI.Codex).InstallLocation 'app\ChatGPT.exe')

Two useful notes: launching app\ChatGPT.exe directly still gets full package identity (AppModel-Runtime logs 201 Created process ... for application OpenAI.Codex_2p2nqsd0c76g0!App [FinishPackageActivation] + 211 Added process ... to Desktop AppX container), so you don't lose anything by bypassing the Start Menu tile. And if you're debugging this, -RedirectStandardError is essential — the bootstrap failure appears only on stderr, with no dump and no Application Error event.

Result

| | before | with hook (correct path) |
|---|---|---|
| t+10s | 8 procs | 7 procs |
| t+25s | 0 — dead | 7 procs |
| t+45s | 0 | 7 procs |
| t+75s | 0 | 7 procs |
| new Crashpad dumps | 1 per launch | 0 |

Window responsive, title ChatGPT, signed package untouched, ~/.codex (auth/sessions/memories) untouched, no admin required. Codex Micro is the only thing lost.

Also confirming the two other findings in this thread on my hardware: the crash is not fixable by uninstall/reinstall (the Store serves the identical 9981.0 — FE3 exposes exactly one revision, and the separate "ChatGPT (Beta)" listing OpenAI.CodexBeta 26.707.3351.0 ships the same unrebuilt @worklouder addons), and it is not fixable by editing the package — Windows refuses to rename the addon even for an elevated Administrator who has taken ownership and granted themselves FullControl, with no DENY ACEs and Controlled Folder Access off.

Filed separately as #33415 before finding this thread; happy to close that as a duplicate of this one. The gate rollback for 3207467860 remains the right immediate vendor mitigation.

junhaoliao · 5 days ago
> one viable mitigation is to disconnect Internet (e.g., turn off Wi-Fi) before launching the Codex app. then only wait until the app is stably running, turn Wi-Fi back on > i suppose the worklouder stuff is gated by StatSig so launching without Internet access should help opting out from the feature. adding ab.chatgpt.com 127.0.0.1 to your hosts file to disable the connection can achieve the similar effect. I can’t confirm that. The app runs without an internet connection, but when you turn Wi-Fi back on, it crashes after a few seconds. Also, adding ab.chatgpt.com 127.0.0.1 to hosts file didn't have any effect.

maybe you haven't waited long enough for it to give up connecting to chatgpt.com... that said, i can confirm simply disabling connection to ab.chatgpt.com won't work, and we don't want to disable backend access to chatgpt.com altogether.

i guess this is the one-liner that i'll keep using to launch the app, until OpenAI patches the issue:

<code>$h="$env:TEMP\codex-disable-worklouder.cjs"; 'const M=require("node:module"),l=M._load;M._load=function(i,...a){return i==="@worklouder/device-kit-oai"?{ConnectionEventType:{CONNECTED:0,DISCONNECTED:1,ERROR:2},DeviceType: {Project2077:0},OAILightingEffect: {off:0,solid:1,breath:2,snake:3},RPCApiOAI:class{},WLDeviceCommImpl:class{},WLDeviceDiscovery:class{findWLDevices() {return[]}}}:l.call(this,i,...a)};' | Set-Content $h -Encoding ascii -NoNewline; $env:NODE_OPTIONS="--require=$h"; Start-Process (Join-Path (Get-AppxPackage OpenAI.Codex).InstallLocation 'app\ChatGPT.exe'); Remove-Item Env:NODE_OPTIONS
</code>

it basically launches the Codex desktop app while temporarily injecting a Node.js module shim that pretends the Work Louder device package exists

junhaoliao · 5 days ago

it's quite disappointing how openai didn't test things before releasing this broken keyboard driver, yet they've been marketing this $200 keypad for a month

ironically, i did buy one, before my Codex app died

1w2w3y · 5 days ago

Running into this issue also :( + 1

BamDefault · 5 days ago

Just wanted to add some data here because the thread is currently heavily focused on ARM64, but this reproduces identically on standard Intel x64. I'm running an Intel i9 on Windows 11 25H2 with the x64 package (OpenAI.Codex_26.707.9981.0_x64__2p2nqsd0c76g0) and getting the exact same 0xc06d007f crash loops and typing stalls described above.

A first-chance process dump shows the breakdown: The bundled native serialport.node addon delay-imports node.exe!napi_module_register. The Electron loader resolves node.exe to the running ChatGPT.exe binary, which doesn't export that symbol. Interestingly, chrome.dll in the same package layout does export napi_module_register, but the linkage isn't reaching it, causing a fatal ERROR_PROC_NOT_FOUND (127). This also explains why @junhaoliao's module-starvation shim works so well. Every window spins up a codexMicro service that dynamically evaluates codex-micro-service-CR6sUcZG.js. Because of CommonJS module evaluation order, the top-level createRequire for @worklouder/device-kit-oai fires immediately at module scope. This forces serialport.node to load and crash before the app even runs findWLDevices() to see if the hardware is actually there.

I spent a few hours trying to manually flip the Statsig gate (3207467860) to false in the local LevelDB cache, but the SDK aggressively overwrites it from the server on boot anyway, so don't bother trying to patch the local DB. Until OpenAI fixes the import sequence (lazy-loading the hardware package only after a device is verified) or fixes the delay-load hook redirection to target chrome.dll, using the preload script outside AppData is the only durable fix. Huge thanks to @junhaoliao for the workaround—saved me a massive headache.

p.s. I came here after my RCA with my tail between my legs, upset i found the issue but couldnt find a workaround but to share my findings. Only to see in the time i was working on it, @junhaoliao had not only found the same issue, but actually come up with a JS slight of hand workaround thats brillient and made me even more sad i didnt think of it. Fair play and bravo @junhaoliao

> > one viable mitigation is to disconnect Internet (e.g., turn off Wi-Fi) before launching the Codex app. then only wait until the app is stably running, turn Wi-Fi back on > > i suppose the worklouder stuff is gated by StatSig so launching without Internet access should help opting out from the feature. adding ab.chatgpt.com 127.0.0.1 to your hosts file to disable the connection can achieve the similar effect. > > > I can’t confirm that. The app runs without an internet connection, but when you turn Wi-Fi back on, it crashes after a few seconds. Also, adding ab.chatgpt.com 127.0.0.1 to hosts file didn't have any effect. maybe you haven't waited long enough for it to give up connecting to chatgpt.com... that said, i can confirm simply disabling connection to ab.chatgpt.com won't work, and we don't want to disable backend access to chatgpt.com altogether. i guess this is the one-liner that i'll keep using to launch the app, until OpenAI patches the issue: $h="$env:TEMP\codex-disable-worklouder.cjs"; 'const M=require("node:module"),l=M._load;M._load=function(i,...a){return i==="@worklouder/device-kit-oai"?{ConnectionEventType:{CONNECTED:0,DISCONNECTED:1,ERROR:2},DeviceType: {Project2077:0},OAILightingEffect: {off:0,solid:1,breath:2,snake:3},RPCApiOAI:class{},WLDeviceCommImpl:class{},WLDeviceDiscovery:class{findWLDevices() {return[]}}}:l.call(this,i,...a)};' | Set-Content $h -Encoding ascii -NoNewline; $env:NODE_OPTIONS="--require=$h"; Start-Process (Join-Path (Get-AppxPackage OpenAI.Codex).InstallLocation 'app\ChatGPT.exe'); Remove-Item Env:NODE_OPTIONS it basically launches the Codex desktop app while temporarily injecting a Node.js module shim that pretends the Work Louder device package exists
f7x57yqmvf-sketch · 5 days ago

Independent confirmation from another Windows 11 ARM64 system.

Environment

  • Device: HP OmniBook 3
  • Processor: Qualcomm Snapdragon X Elite
  • Architecture: Windows 11 ARM64
  • RAM: 16 GB
  • Microsoft Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0

PowerShell verification:

Name           Version          Architecture   PackageFullName
OpenAI.Codex   26.707.9981.0    Arm64          OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0

Reproduction

  1. Launch the new unified ChatGPT/Codex desktop app.
  2. The application window appears normally.
  3. Within approximately 2 seconds, the entire application exits.
  4. No visible error message is displayed.
  5. Relaunching reproduces the behavior every time.

ChatGPT on the web and ChatGPT Classic continue to work normally on the same computer and account. The problem appeared with the current desktop-app rollout/update.

Correlation with this issue

The platform, package version, architecture, and launch-crash behavior match the reports in this thread involving:

  • exception 0xC06D007F / ERROR_PROC_NOT_FOUND
  • missing Node-API export napi_create_function
  • bundled @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • dependency path through @worklouder/device-kit-oai

I have not independently parsed this machine's Crashpad dump, so the low-level exception details above are a correlation with the established reports—not a separate dump-level root-cause claim. This report independently confirms that the affected Store package and user-visible crash reproduce on an HP Snapdragon X Elite ARM64 system.

I have not reset or reinstalled after confirming that fresh installations of the same Store package reproduce the issue. No dump, logs, or screenshots are attached because they may contain sensitive local process or session data.

gggnnn1 · 5 days ago

같은 증상이네요. 멀쩡히 사용하고 있다가 꺼져서 지금까지 안되네, 몇번을 다시 깐건지;;;;

sentinel-deployment · 5 days ago

Environment: Windows 11 ARM64 using the Microsoft Store Codex package, build 26.707.9981.0 ARM64.

Codex launched but exited after roughly 10–15 seconds. Direct execution from the protected WindowsApps path failed with Access is denied, so the registered AppX application entry had to be used.

A temporary CommonJS preload hook was created that intercepts only @worklouder/device-kit-oai and returns inert stub classes and constants. NODE_OPTIONS=--require=<hook path> was temporarily set at user scope so the packaged AppX process inherited it. Codex was then launched using shell:AppsFolder\<PackageFamilyName>!App, and the prior user-level NODE_OPTIONS value was restored immediately after the process started.

Result: Codex launched successfully and remained stable beyond the previous crash window. No installed package files were modified. Session-scoped NODE_OPTIONS was not sufficient because AppX activation did not inherit it; temporary user-level scope was required.

The hook contains no network calls or credential access and only overrides the exact Work Louder module name. This should be treated as a temporary mitigation pending an official ARM64 fix or feature-flag rollback.

Operational notes

Run the script from a standard PowerShell window, not an elevated administrator window. The user-level NODE_OPTIONS value is restored immediately after the Codex process starts. The temporary .cjs file remains in %TEMP%, but it has no effect unless referenced through NODE_OPTIONS.

After an official fix is installed, remove the hook:

Remove-Item "$env:TEMP\codex-disable-worklouder.cjs" `
-ErrorAction SilentlyContinue

The workaround should then be retired rather than retained as a permanent launcher.

<#
Temporary workaround for openai/codex#33381 on Windows ARM64.

What it does:

  1. Creates a temporary Node preload hook that disables only

@worklouder/device-kit-oai.

  1. Temporarily sets NODE_OPTIONS at the current user's environment scope.
  2. Discovers the installed Microsoft Store Codex package and registered AppX ID.
  3. Launches Codex through shell:AppsFolder.
  4. Waits for the Codex host process to start.
  5. Restores the previous NODE_OPTIONS value.

Run from a normal, non-administrator PowerShell session.
#>

$ErrorActionPreference = "Stop"

No workstation-specific change is normally required.

$hook = Join-Path $env:TEMP "codex-disable-worklouder.cjs"

@'
const Module = require("node:module");
const originalLoad = Module._load;

Module._load = function (request, ...args) {
if (request === "@worklouder/device-kit-oai") {
return {
ConnectionEventType: {
CONNECTED: 0,
DISCONNECTED: 1,
ERROR: 2
},
DeviceType: {
Project2077: 0
},
OAILightingEffect: {
off: 0,
solid: 1,
breath: 2,
snake: 3
},
RPCApiOAI: class {},
WLDeviceCommImpl: class {},
WLDeviceDiscovery: class {
findWLDevices() {
return [];
}
}
};
}

return originalLoad.call(this, request, ...args);
};
'@ | Set-Content -Path $hook -Encoding ASCII -NoNewline

Preserve any existing user-level NODE_OPTIONS value.

$previousUserNodeOptions = [Environment]::GetEnvironmentVariable(
"NODE_OPTIONS",
"User"
)

try {
# Discover the installed Codex package.
$pkg = Get-AppxPackage OpenAI.Codex

if (-not $pkg) {
throw "The OpenAI.Codex Microsoft Store package was not found."
}

# Read the registered AppX launch entry.
$manifest = Get-AppxPackageManifest $pkg

$application = $manifest.Package.Applications.Application |
Where-Object { $_.Executable -eq "app/ChatGPT.exe" } |
Select-Object -First 1

# Fallback in case the executable name changes in a future package.
if (-not $application) {
$application = $manifest.Package.Applications.Application |
Select-Object -First 1
}

if (-not $application) {
throw "No launchable application was found in the Codex package manifest."
}

$aumid = "$($pkg.PackageFamilyName)!$($application.Id)"

# AppX activation did not inherit a PowerShell-session-only variable.
# User scope is therefore set temporarily.
[Environment]::SetEnvironmentVariable(
"NODE_OPTIONS",
"--require=$hook",
"User"
)

# Also set it in the current session for child-process compatibility.
$env:NODE_OPTIONS = "--require=$hook"

# Launch through the registered AppX application entry.
Start-Process explorer.exe -ArgumentList "shell:AppsFolder\$aumid"

# Wait for the Codex Chromium host process.
$startupTimeoutSeconds = 30
$deadline = (Get-Date).AddSeconds($startupTimeoutSeconds)
$process = $null

do {
Start-Sleep -Seconds 1

$process = Get-Process ChatGPT -ErrorAction SilentlyContinue |
Select-Object -First 1

} until ($process -or (Get-Date) -ge $deadline)

if (-not $process) {
throw "Codex did not start within $startupTimeoutSeconds seconds."
}

Write-Host "Codex launched successfully."
Write-Host "Process ID: $($process.Id)"
Write-Host "AppX ID: $aumid"
Write-Host "Temporary hook: $hook"
}
finally {
# Restore the prior user environment, even if launch fails.
[Environment]::SetEnvironmentVariable(
"NODE_OPTIONS",
$previousUserNodeOptions,
"User"
)

Remove-Item Env:NODE_OPTIONS -ErrorAction SilentlyContinue
}

AutomatedEmpires · 5 days ago

Independent reproduction confirmed on Windows 11 ARM64.

Package:
OpenAI.Codex_26.707.9981.0_arm64

Behavior:
The full Electron/Codex process tree starts, the window appears, and the
main process exits consistently after approximately 7–10 seconds.

Loader failure:
0xC06D007F
dwLastError = 127 / ERROR_PROC_NOT_FOUND
DLL = node.exe
procedure = napi_create_function

Faulting module:
@serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node

Dependency chain:
@worklouder/device-kit-oai
-> @worklouder/wl-device-kit
-> serialport
-> @serialport/bindings-cpp

The delay-load resolves node.exe to ChatGPT.exe, but the packaged ARM64
host does not export napi_create_function.

A byte-identical Microsoft Store uninstall/reinstall did not resolve it.
Fresh profile, all plugins disabled, cache isolation, re-registration,
and package-identity --disable-gpu testing also failed.

Repositories and .codex state are unrelated and remain intact.
Crash dump retained locally and available privately if requested.

han0218 · 5 days ago

Independent confirmation from another Windows 11 ARM64 system using the Microsoft Store build OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0.

Observed behavior:

  • the app window opens normally;
  • after roughly 5 seconds, the entire app exits without a visible error dialog;
  • Windows app Reset did not help;
  • a full uninstall followed by a fresh reinstall from the Microsoft Store also did not help;
  • the fresh install still crashes immediately on launch in the same way.

Local diagnosis on this machine also matched the reported failure signature: exception 0xC06D007F, consistent with the @serialport/bindings-cpp / missing napi_create_function failure described in this issue.

This further suggests the problem is not caused by corrupted local app data, cached state, or an incomplete installation. Codex CLI remains available as a temporary workaround.

wadawada0211 · 5 days ago

I can confirm this issue on another Windows ARM64 device and would like to provide additional diagnostic information.

Environment

  • Device: Microsoft Surface Pro (ARM64)
  • OS: Windows 11
  • Subscription: ChatGPT Pro
  • Codex Desktop: 26.707.9981.0 (ARM64)

Symptoms

  • Codex launches normally.
  • It consistently exits after approximately 5–6 seconds.
  • No error dialog is displayed.
  • Resetting the application, reinstalling it from Microsoft Store, and rebooting Windows do not resolve the problem.

Diagnostics

PowerShell

Name              : OpenAI.Codex
Version           : 26.707.9981.0
PackageFullName   : OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0

Windows Event Viewer

I found crash records for previous ARM64 releases (26.623.8305.0 and 26.707.8479.0).

For version 26.707.9981.0, however, Windows Event Viewer does not generate a new Application Error entry on my machine.

Crashpad

Crashpad is generating minidumps.

Recent dump files include:

388013f1-4802-4a7c-9cd3-a00b7e12cdcc.dmp
47650a29-69a9-4d43-8556-1c2feaa680e0.dmp

Historical observations

Earlier ARM64 releases occasionally crashed on my machine:

  • 26.623.8305.0
  • 26.707.8479.0

However, 26.707.9981.0 now crashes every single launch, approximately 5–6 seconds after startup.

Current workaround

  • Codex CLI works correctly.
  • I am currently using Codex through Antigravity IDE as a temporary workaround.

Available diagnostics

If it would help the investigation, I can provide:

  • Windows Event Viewer logs
  • Crashpad minidumps (.dmp)
  • Additional diagnostic information
  • Testing of preview / experimental ARM64 builds

Thank you for investigating this issue.

If needed, I can also privately provide the Crashpad minidump files themselves for analysis.

<img width="2194" height="1416" alt="Image" src="https://github.com/user-attachments/assets/a04637af-0360-4366-83a0-c6157afed90d" />
<img width="2194" height="1453" alt="Image" src="https://github.com/user-attachments/assets/c57d375b-1d71-421a-a5db-f00b4bb22792" />
<img width="1725" height="918" alt="Image" src="https://github.com/user-attachments/assets/23aa2d21-0868-45d8-9fd0-36c798a34016" />

kimmaliu · 5 days ago

I can reproduce this consistently: the ARM64 build crash-loops, while the same version works normally on x64

My issue appears to match this report very closely.

Affected machine
  • Windows 11 ARM64
  • Installed from the Microsoft Store
  • OpenAI.ChatGPT-Desktop 1.2026.190.0 ARM64
  • OpenAI.Codex 26.707.9981.0 ARM64
  • Both packages report Status: OK in Get-AppxPackage
Actual behavior

The application was working normally earlier on the same day. No significant local configuration changes were made, but it then suddenly began crash-looping.

On every launch:

  1. The Codex window appears normally.
  2. The application process and AppX container are created successfully.
  3. After several seconds, usually within roughly 7–20 seconds, the window exits silently.
  4. No error dialog or visible warning is shown.
  5. Relaunching reproduces the same behavior.

The AppModel Runtime log shows that the OpenAI.Codex process is created successfully and that its AppX container is subsequently destroyed.

I do not see a standard Codex Application Error 1000 event that clearly explains the termination.

Troubleshooting already attempted

I have already tried:

  • Terminating, repairing, and resetting the application
  • Completely uninstalling and reinstalling it from the Microsoft Store
  • Rebooting Windows multiple times
  • Resetting and re-registering the AppX packages
  • Successfully running:

```powershell
DISM.exe /Online /Cleanup-Image /RestoreHealth

LukeWHolliday · 5 days ago

Confirming the preload-hook mitigation works on my machine too (Surface, Windows 11 ARM64, OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0).

Used the same approach @junhaoliao / @TerraSYNCBIIZ / @sentinel-deployment described: a small .cjs preload hook (stored outside %LOCALAPPDATA% per @TerraSYNCBIIZ's note about the AppX container redirect) that intercepts require("@worklouder/device-kit-oai") and returns inert stubs, launched via NODE_OPTIONS=--require=<hook> scoped to a single Start-Process app\ChatGPT.exe call so nothing persists in the environment.

Result: process count stayed stable well past the previous ~10-15s crash window (tested to 30s+), no new Crashpad dump was written, and the app is usable. Only Codex Micro / hardware-device support is disabled — everything else works normally.

Thanks to everyone who dug into this — hope OpenAI ships an official fix (flag rollback or export-table fix) soon so this workaround can be retired.

ivangc1 · 5 days ago

Confirming on my machine — same exception code, same modules.

Environment

  • Surface Laptop, Snapdragon X Plus (8-core), Windows 11 ARM64, OS build 26200
  • OpenAI.Codex 26.707.9981.0 arm64 (OpenAI.Codex_2p2nqsd0c76g0), MSIX from Store

Verified locally

  • Minidump exception code: 0xC06D007F
  • Dump strings include device-kit-oai, bindings-cpp, node.napi.node, ChatGPT.exe

Note for anyone else trying to capture a dump: Crashpad uploads and purges
...\Crashpad\reports\*.dmp within a few minutes — the file is often gone by the
time you try to open it. Polling the directory during launch gets you a copy:

$src = "$env:LOCALAPPDATA\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Roaming\Codex\web\Codex\Crashpad\reports"
$dst = "$env:USERPROFILE\codex-dumps"
New-Item -ItemType Directory -Force -Path $dst | Out-Null
1..450 | % { gci $src -Filter *.dmp -EA 0 | % { Copy-Item $_.FullName $dst -Force -EA 0 }; sleep -Milliseconds 200 }

Reading the exception code without WinDbg: parse the minidump stream directory,
find stream type 6 (ExceptionStream), read the UInt32 at Rva + 8.

dantesantillan · 4 days ago

I am experiencing the same reproducible crash loop on another Windows 11 ARM64 device, and I was able to analyze the Crashpad minidump with WinDbg.

Environment

Architecture: ARM64
OS: Windows 11
Windows build: 26200.8875
Codex app version: 26.707.9981.0
Package architecture: Arm64
Process: ChatGPT.exe
Location: Mexico
First observed: July 15, 2026

Package information reported by PowerShell:

Name: OpenAI.Codex
Version: 26.707.9981.0
Architecture: Arm64

Symptoms

Codex opens normally at first. The login flow completes successfully. The main interface and existing projects briefly become visible. Approximately eight seconds after process startup, the entire application exits silently. No error dialog is displayed. The issue occurs on every launch. Windows Reliability Monitor does not show a useful crash entry. Crashpad generates a new .dmp file after the crash.

Troubleshooting already attempted

Windows app Repair, Windows app Reset, restarting Windows, starting Codex with a completely fresh .codex directory, renaming the project or repository that Codex might have been restoring, and disabling the internal updater using CODEX_SPARKLE_ENABLED=false.

None of these steps resolved the crash.

The application also crashed with a new and empty .codex directory, so the issue does not appear to be caused by existing conversations, projects, plugins, configuration, or local session state.

WinDbg minidump analysis

ExceptionCode: c06d007f
PROCESS_NAME: ChatGPT.exe
Failure.Bucket: APPLICATION_FAULT_c06d007f_node.napi.node!Unknown
MODULE_NAME: node_napi
IMAGE_NAME: node.napi.node
SYMBOL_NAME: node_napi+2798c
OSPLATFORM_TYPE: arm64

Relevant stack:

KERNELBASE!RaiseException+0x74
node_napi+0x2798c

WinDbg also reports an attempt to load the native ARM64 module located under:

@worklouder\device-kit-oai\node_modules@worklouder\wl-device-kit\node_modules\serialport\node_modules@serialport\bindings-cpp\prebuilds\win32-arm64\node.napi.node

WinDbg reports:

Unable to load image …\win32-arm64\node.napi.node, Win32 error 2

The process uptime at the time of the crash was approximately eight seconds:

Timeline.Process.Start.DeltaSec: 8

This appears consistent with the 0xC06D007F ARM64 Node-API / napi_create_function failure described in this issue.

I also verified the exact installed path referenced by WinDbg using PowerShell, and Test-Path returned False.

Could OpenAI temporarily disable the device-kit / serialport feature remotely for Windows ARM64 users, so affected installations can launch and receive the next update?

I can provide the Crashpad minidump privately if an OpenAI maintainer provides an approved secure upload method. I would prefer not to upload the dump publicly because it may contain local paths or portions of process memory.

sentinel-deployment · 4 days ago
Environment: Windows 11 ARM64 using the Microsoft Store Codex package, build 26.707.9981.0 ARM64. Codex launched but exited after roughly 10–15 seconds. Direct execution from the protected WindowsApps path failed with Access is denied, so the registered AppX application entry had to be used. A temporary CommonJS preload hook was created that intercepts only @worklouder/device-kit-oai and returns inert stub classes and constants. NODE_OPTIONS=--require= was temporarily set at user scope so the packaged AppX process inherited it. Codex was then launched using shell:AppsFolder<PackageFamilyName>!App, and the prior user-level NODE_OPTIONS value was restored immediately after the process started. Result: Codex launched successfully and remained stable beyond the previous crash window. No installed package files were modified. Session-scoped NODE_OPTIONS was not sufficient because AppX activation did not inherit it; temporary user-level scope was required. The hook contains no network calls or credential access and only overrides the exact Work Louder module name. This should be treated as a temporary mitigation pending an official ARM64 fix or feature-flag rollback. Operational notes Run the script from a standard PowerShell window, not an elevated administrator window. The user-level NODE_OPTIONS value is restored immediately after the Codex process starts. The temporary .cjs file remains in %TEMP%, but it has no effect unless referenced through NODE_OPTIONS. After an official fix is installed, remove the hook: Remove-Item "$env:TEMP\codex-disable-worklouder.cjs" -ErrorAction SilentlyContinue The workaround should then be retired rather than retained as a permanent launcher. <# Temporary workaround for [#33381](https://github.com/openai/codex/issues/33381) on Windows ARM64. What it does: 1. Creates a temporary Node preload hook that disables only @worklouder/device-kit-oai. 2. Temporarily sets NODE_OPTIONS at the current user's environment scope. 3. Discovers the installed Microsoft Store Codex package and registered AppX ID. 4. Launches Codex through shell:AppsFolder. 5. Waits for the Codex host process to start. 6. Restores the previous NODE_OPTIONS value. Run from a normal, non-administrator PowerShell session. #> $ErrorActionPreference = "Stop" # No workstation-specific change is normally required. $hook = Join-Path $env:TEMP "codex-disable-worklouder.cjs" @' const Module = require("node:module"); const originalLoad = Module._load; Module._load = function (request, ...args) { if (request === "@worklouder/device-kit-oai") { return { ConnectionEventType: { CONNECTED: 0, DISCONNECTED: 1, ERROR: 2 }, DeviceType: { Project2077: 0 }, OAILightingEffect: { off: 0, solid: 1, breath: 2, snake: 3 }, RPCApiOAI: class {}, WLDeviceCommImpl: class {}, WLDeviceDiscovery: class { findWLDevices() { return []; } } }; } return originalLoad.call(this, request, ...args); }; '@ | Set-Content -Path $hook -Encoding ASCII -NoNewline # Preserve any existing user-level NODE_OPTIONS value. $previousUserNodeOptions = [Environment]::GetEnvironmentVariable( "NODE_OPTIONS", "User" ) try { # Discover the installed Codex package. $pkg = Get-AppxPackage OpenAI.Codex ` if (-not $pkg) { throw "The OpenAI.Codex Microsoft Store package was not found." } # Read the registered AppX launch entry. $manifest = Get-AppxPackageManifest $pkg $application = $manifest.Package.Applications.Application | Where-Object { $_.Executable -eq "app/ChatGPT.exe" } | Select-Object -First 1 # Fallback in case the executable name changes in a future package. if (-not $application) { $application = $manifest.Package.Applications.Application | Select-Object -First 1 } if (-not $application) { throw "No launchable application was found in the Codex package manifest." } $aumid = "$($pkg.PackageFamilyName)!$($application.Id)" # AppX activation did not inherit a PowerShell-session-only variable. # User scope is therefore set temporarily. [Environment]::SetEnvironmentVariable( "NODE_OPTIONS", "--require=$hook", "User" ) # Also set it in the current session for child-process compatibility. $env:NODE_OPTIONS = "--require=$hook" # Launch through the registered AppX application entry. Start-Process explorer.exe -ArgumentList "shell:AppsFolder\$aumid" # Wait for the Codex Chromium host process. $startupTimeoutSeconds = 30 $deadline = (Get-Date).AddSeconds($startupTimeoutSeconds) $process = $null do { Start-Sleep -Seconds 1 $process = Get-Process ChatGPT -ErrorAction SilentlyContinue | Select-Object -First 1 } until ($process -or (Get-Date) -ge $deadline) if (-not $process) { throw "Codex did not start within $startupTimeoutSeconds seconds." } Write-Host "Codex launched successfully." Write-Host "Process ID: $($process.Id)" Write-Host "AppX ID: $aumid" Write-Host "Temporary hook: $hook" ` } finally { # Restore the prior user environment, even if launch fails. [Environment]::SetEnvironmentVariable( "NODE_OPTIONS", $previousUserNodeOptions, "User" ) ` Remove-Item Env:NODE_OPTIONS -ErrorAction SilentlyContinue `` }

New data point to report:
After restoring the package to its normal state, the original crash was reproducible again. Recreating the preload hook and temporarily setting NODE_OPTIONS at user scope allowed Codex to launch successfully again. This confirms the workaround is repeatable and that the underlying AppX package does not require repair or reinstallation.

SCI-SriLanka · 4 days ago

Independent confirmation: controlled host A/B, mixed-architecture packaging, and Snapdragon X Elite performance

I reproduced the same failure on a Windows 11 ARM64 system with a Snapdragon X Elite using Codex Desktop 26.707.9981.0 (ARM64). I am intentionally omitting machine/account identifiers, local paths, dump hashes, and other workstation-specific data.

Controlled host A/B test

The crash signature matches this issue:

  • exception 0xC06D007F / ERROR_PROC_NOT_FOUND (127)
  • delay-loaded DLL node.exe
  • missing procedure napi_create_function
  • importing addon @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node
  • dependency chain through @worklouder/device-kit-oai

I then tested the exact ARM64 serial-port addon copied from the signed package in controlled hosts:

  • It loads successfully in ARM64 Node 24.14.0.
  • It loads successfully in stock Electron 42.1.0 ARM64 and exits cleanly.
  • Stock Electron 42.1.0 ARM64's electron.exe has 3,454 exports and includes napi_create_function.
  • The packaged ARM64 ChatGPT.exe has only two exports and does not include napi_create_function.

This rules out a corrupt addon or an inherently invalid ARM64 binary. The deterministic failure is at the boundary between the addon and the packaged desktop host.

Cross-architecture scope

The analysis in #33375 indicates that x64 has the same underlying delay-load/linkage defect, but it commonly presents as repeated faults and severe UI stalls rather than the ARM64 startup crash loop. The two packages select different serial-port artifacts, while both packaged host executables expose only two exports. The durable fix should therefore cover both Windows architectures; disabling the optional integration for ARM64 remains the fastest way to stop the current hard crash loop.

I also found a separate architecture-closure issue in the signed ARM64 package: the Computer Use runtime is ARM64 except for its bundled codex-computer-use.exe, which is x64. That helper must run through Windows-on-ARM emulation. This is not the cause of the serial-port startup crash, but it is a plausible contributor to Computer Use latency and should be rebuilt as ARM64.

Performance observation (qualitative, not a benchmark)

On the same Snapdragon X Elite machine, the native ARM64 package felt materially less responsive than the x64 package running under Windows-on-ARM emulation. The most noticeable symptoms were slower project/task switching and loading, plus UI/cursor responsiveness and occasional system-visible lag. This is a user-experience comparison, not a controlled ARM64-vs-x64 benchmark, so it should be profiled independently from the deterministic crash. The mixed x64 helper in the ARM64 package is one concrete packaging issue, but I am not claiming it alone explains the broader lag.

Suggested fixes and regression coverage

  1. Immediately disable the Codex Micro/device-kit initialization path for Windows ARM64 until the native load is safe.
  2. Fix the delay-load target/link method or rebuild the addon for the actual packaged host, and verify both ARM64 and x64.
  3. Do not import an optional hardware integration on renderer mount when no device has been enabled; isolate its failure so it cannot terminate or repeatedly stall the desktop main process.
  4. Ship an ARM64 codex-computer-use.exe in the ARM64 package and add an architecture-closure check for every executable, DLL, and .node addon.
  5. Add package-level smoke tests that launch the signed app, mount the affected bridge, call its no-device state path, and load every bundled native addon on both Windows ARM64 and x64.

Resilience/diagnostics proposal

This incident would be much easier to recover from if the open-source Codex CLI/app-server exposed a desktop recovery mode such as codex doctor desktop, independent of the Electron process. It could:

  • inventory AppX architecture, native-addon ABI/linkage, and mixed-architecture helpers;
  • correlate redacted Crashpad/Event Viewer/log signatures and optional-integration retry loops;
  • produce a privacy-reviewed support bundle with paths, account data, tokens, and device identifiers removed;
  • apply only supported, reversible recovery actions with user consent, such as disabling a faulty optional integration, refreshing an optional runtime component, or selecting a known-good package while preserving chats, projects, and settings;
  • adaptively defer nonessential helpers when repeated faults or compositor pressure are detected.

This should not self-modify signed binaries. The useful boundary is diagnosis plus supported policy/gate/runtime-cache recovery, with explicit consent and rollback.

I retained the crash dump locally but will not attach it publicly because dumps can contain process memory and private data. It can be shared only through an OpenAI-approved private channel if requested.

laowubenwu · 4 days ago

Additional affected-user report, shared with explicit permission:

  • Microsoft Surface Pro running Windows 11 ARM64
  • Codex desktop version 26.707.9981.0
  • The app opens and then exits silently after several seconds on every launch
  • Repair, Reset, and reinstalling the app did not resolve the problem
  • Crashpad analysis matches the 0xC06D007F / missing napi_create_function signature documented in this issue

No crash dump, account information, or private file paths are being posted publicly.

iiijiashu · 4 days ago

Also happening on Windows 11 x64 (build 26200), same exception
0xC06D007F and same load chain (device-kit-oai → CodexMicroService →
serialport.node). Codex 26.707.9981.0 x64, stable since install,
started July 15.

Unlike ARM64 the app doesn't close — the UI freezes for 2–5 seconds
in a loop, each freeze lining up with a silent ChatGPT.exe crash.
Generated 30+ dumps in 24 hours before I suppressed them. x64
ChatGPT.exe does export napi_* symbols, so the root cause on x64
may be a prebuilt binary dependency mismatch rather than missing
NAPI exports — but the crash chain is identical.

LemonNekoGH · 4 days ago

Independent VMware Fusion ARM64 reproduction

I can independently reproduce this exact crash in a Windows ARM64 virtual machine hosted by VMware Fusion.

Environment

  • VMware Fusion 26.0.0 on Apple Silicon
  • Windows 11 Pro 24H2 ARM64, build 26100.4349
  • Microsoft Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Package version: 26.707.9981.0

Behavior

This exact installed version completed multiple successful launches before the failure began. It then exited abruptly during a long-running session. Since that point, every launch renders the main UI and then terminates the entire AppX container after roughly 8–12 seconds, producing a new Crashpad dump.

A fresh reproduction on July 16 lasted about 10.2 seconds from AppX launch to container destruction.

Matching crash signature

  • Exception: 0xC06D007F
  • Delay-load request: node.exe!napi_create_function
  • Resolved module handle: ChatGPT.exe
  • Procedure pointer: null
  • lastError=127 (ERROR_PROC_NOT_FOUND)
  • Importing addon:

@worklouder/device-kit-oai/.../@serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node

Both the host executable and addon are ARM64, so this is not an x64/ARM64 binary mismatch.

PE export inspection matches the analysis in this issue:

  • ChatGPT.exe exports only GetHandleVerifier and IsSandboxedProcess, with no napi_* or node_api_* exports.
  • chrome.dll does export napi_create_function and the wider N-API surface.

There was no AppX deployment or Store update near the onset. The same-day deployment record was the earlier interactive install/registration and was explicitly logged as IsUpdate=false. The Store currently offers no newer package to this machine/account/release ring.

A successful Statsig interval refresh completed approximately two seconds before the first abrupt exit. This is correlation only: twenty earlier refreshes completed normally, and the logs do not expose a changed Work Louder/Codex Micro gate value.

The latest minidump is retained and can be provided through a private OpenAI-approved upload channel. I am not attaching it publicly because it may contain process memory and local identifiers.

This adds a VMware Fusion reproduction alongside the Parallels ARM VM and physical Snapdragon reports already present in the thread. The CLI remains usable, but the desktop GUI and Computer Use service are unavailable.

_Disclosure: this comment was prepared and posted via Codex CLI at my explicit request after the Codex desktop GUI crashed._

Li-ari · 4 days ago

Independent reproduction on a Samsung Galaxy Book 6 Edge running Windows 11 ARM64 (Snapdragon), with a ChatGPT Pro account.

Affected app package

  • Microsoft Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Architecture: ARM64

Exact behavior

  1. Launch the desktop app after a reset or reinstall.
  2. Sign in successfully.
  3. Complete the onboarding / initial setup screens without any problem.
  4. The moment the app transitions into the main ChatGPT/Codex screen, the entire app exits immediately and silently.
  5. Relaunching reproduces the same behavior every time.

The exit looks clean from the user side: there is no visible error dialog, no forced-close message, and no matching failure in Reliability Monitor or Windows Application Error logs.

Troubleshooting already performed

  • Windows app Repair and Reset
  • Sign out and sign in again
  • Full uninstall, reboot, and reinstall from Microsoft Store
  • Renamed and later removed %USERPROFILE%\.codex
  • Started with newly generated Codex/app state
  • Cleared related local app data during troubleshooting

None of these changed the behavior. Other Windows applications work normally. The failure is specific to the ChatGPT/Codex desktop app and occurs precisely when the authenticated main UI is mounted.

This matches the reported ARM64 0xC06D007F / missing napi_create_function / serialport native-addon failure. Unfortunately, the Crashpad data was not preserved because the application data was cleared before the root cause was identified.

fleps · 4 days ago

@tibo-openai is someone taking a look at this?

nkaiurov · 4 days ago

Independent confirmation from another affected system, based on a newly captured and independently analyzed Crashpad minidump.

Environment

  • Device: Microsoft Surface Laptop 7
  • CPU: Snapdragon X Elite
  • OS: Windows 11 ARM64, build 10.0.26200
  • Microsoft Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • App executable: ChatGPT.exe
  • Electron/Chromium runtime reported in the dump: 150.0.7871.115

Behavior

The app opens for a few seconds and then exits silently. The analyzed process uptime was approximately 10 seconds. No corresponding Application log event or Reliability Monitor record was produced, but Crashpad generated a 44 MB minidump.

Matching crash signature

The minidump matches this issue exactly:

  • Exception: 0xC06D007F
  • Delay-loaded DLL: node.exe
  • Missing procedure: napi_create_function
  • dwLastError = 127 (ERROR_PROC_NOT_FOUND)
  • Crashing native addon:

@worklouder/device-kit-oai/.../@serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node

  • The crashing stack is in the Electron main/browser process and includes KERNELBASE.dll, node.napi.node, and chrome.dll.

Changing the user configuration, including disabling remote_connections, did not affect the crash, which is consistent with this being a packaged ARM64 native-module/host-export problem rather than profile corruption or a Remote Control setting.

The minidump has been retained and can be provided privately through an OpenAI-approved upload channel if requested. It is intentionally not attached publicly because it may contain process-memory data.

_Disclosure: this comment was translated, prepared, and posted through ChatGPT/Codex at my explicit request._

431827701yx · 4 days ago

Independent Windows x64 confirmation

This is an independent reproduction on Windows 11 x64, with two minidumps and a package-level rollback comparison.

Environment

  • OS: Windows 11 x64, build 10.0.22631
  • Store package: OpenAI.Codex_26.707.9981.0_x64__2p2nqsd0c76g0
  • Desktop release in Sentry context: codex@26.707.72221
  • Embedded Node: 24.14.0

Behavior and event evidence

  • The desktop app interrupted two active tasks; main-process changes occurred at approximately 11:26 and 12:28 local time.
  • Windows Application Error recorded an ongoing Event ID 1000 exception storm rather than one event per visible restart.
  • From 2026-07-15 23:54:37 through 2026-07-16 13:58:12, the count increased to 228 events for ChatGPT.exe with exception 0xC06D007F.

Matching minidump evidence

Two independently captured dumps contain the same DelayLoadInfo:

Exception: 0xC06D007F
Delay-loaded DLL: node.exe
Missing procedure: napi_module_register
dwLastError: 127 (ERROR_PROC_NOT_FOUND)
hmodCur: ChatGPT.exe
Current function: null

The delay-import descriptor and IAT resolve to the x64 addon:

@worklouder/device-kit-oai
  -> @worklouder/wl-device-kit
  -> serialport
  -> @serialport/bindings-cpp/build/Release/serialport.node

The app's own Sentry logs independently report DLL initialization failure for the same serialport.node path.

Trigger and rollback isolation

The packaged renderer checks Statsig gate 3207467860, then lazy-loads CodexMicroBridge and calls codexMicro.getState(). The main process lazy-loads codex-micro-service-CR6sUcZG.js, whose top-level initialization requires @worklouder/device-kit-oai.

AppX deployment history shows an update from 26.707.9564.0 to 26.707.9981.0 at 09:10, followed by the first fault at 23:54. I downloaded and verified the previous Microsoft-signed package. These files are byte-identical between 9564 and 9981:

| File | SHA-256 |
| --- | --- |
| ChatGPT.exe | 28C3E8B6C55FFF39ECB12A5EB27F493ABF997804247517AA7A46C277CA5D9E93 |
| serialport.node | 2D5D112E2E57054034FA9454E9C33DC306377455D989644F7D4C1B43027EB006 |
| app-main-CAsXyywb.js | 01E0DD22E00BBA96E036E2EFEA88983C76984A6868CBD88B2125FE2E573C9166 |
| codex-micro-service-CR6sUcZG.js | 0BB261E3EED89FF69384754AB67DF49C9F10DBD2FA567104C5859F43D026C911 |

This means reinstalling the current package or rolling back only one version cannot remove the packaged defect on this x64 machine. The timing and gate-controlled import path strongly support a server-side rollout exposing a latent native-addon/runtime incompatibility.

Suggested immediate mitigation: disable gate 3207467860 for Windows x64 as well as ARM64, or catch the optional service import failure so Codex Micro remains disabled instead of generating a main-process exception storm.

I retained both dumps locally but am not attaching them publicly because they may contain process memory or local identifiers. They can be provided through an OpenAI-approved private channel.

_Disclosure: this comment was prepared and posted through Codex at my explicit request._

Nequanel · 4 days ago

Same issue here. Insta close on ARM 64 surface laptop!?!?!? HAve anyone found a solution?

Nevaseme · 4 days ago

I found a workaround that works on my ARM64 machine.

The stable package (OpenAI.Codex 26.707.9981.0 arm64) still crashes a few seconds after launch, but the Microsoft Store Beta (OpenAI.CodexBeta 26.707.3351.0 arm64) launches and works normally on the same machine.

The Beta can be installed alongside the stable version:
https://apps.microsoft.com/detail/9N8CJ4W95TBZ

This does not fix the stable build, but it may help others who are currently blocked.

fleps · 4 days ago
I found a workaround that works on my ARM64 machine. The stable package (OpenAI.Codex 26.707.9981.0 arm64) still crashes a few seconds after launch, but the Microsoft Store Beta (OpenAI.CodexBeta 26.707.3351.0 arm64) launches and works normally on the same machine. The Beta can be installed alongside the stable version: https://apps.microsoft.com/detail/9N8CJ4W95TBZ This does not fix the stable build, but it may help others who are currently blocked.

Great to know.
I have submitted a ticket to Support linking to this GH issue and they have acknowledged the bug and forwarded to the appropriate team.

huangzclaw · 4 days ago
我找到了一个在我的ARM64机器上有效的变通方法。 稳定包()启动后几秒钟内仍会崩溃,但Microsoft Store Beta()能正常启动并在同一台机器上运行。OpenAI.Codex 26.707.9981.0 arm64OpenAI.CodexBeta 26.707.3351.0 arm64 测试版可以与稳定版同时安装:https://apps.microsoft.com/detail/9N8CJ4W95TBZ 这并不能修复稳定版,但可能对目前被卡住的其他人有帮助。

thanks,i will try!

Reflexoptics01 · 4 days ago

Independent confirmation from my Snapdragon Windows 11 ARM64 machine.

  • Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Normal launch and GPU-off launch still crash; reinstall did not change it.
  • The packaged ARM64 module is present at @worklouder/device-kit-oai -> wl-device-kit -> serialport -> @serialport/bindings-cpp/prebuilds/win32-arm64/node.napi.node.
  • A narrowly scoped preload that stubs only @worklouder/device-kit-oai keeps the app alive beyond 14 minutes with zero new Crashpad reports.
  • Codex user state was not changed; local doctor reports 308 active/archived rollout rows with zero missing or stale threads.

Please disable the Codex Micro gate for Windows ARM64, or catch the optional device-kit import failure so the main process cannot crash. The workaround is useful, but the shipped ARM64 build still needs a fix.

junhaoliao · 4 days ago
Same issue here. Insta close on ARM 64 surface laptop!?!?!? HAve anyone found a solution?

you can try this mitigation

https://github.com/openai/codex/issues/33381#issuecomment-4985779999

Alovchin91 · 4 days ago

The mitigation can't seem to work, launching the packaged Codex app with Start-Process is pretty much impossible:

Start-Process: This command cannot be run due to the error: An error occurred trying to start process 'C:\Program Files\WindowsApps\OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0\app\ChatGPT.exe' with working directory 'C:\Program Files\WindowsApps\OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0\app'. Access is denied.
junhaoliao · 4 days ago
The mitigation can't seem to work, launching the packaged Codex app with Start-Process is pretty much impossible: `` Start-Process: This command cannot be run due to the error: An error occurred trying to start process 'C:\Program Files\WindowsApps\OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0\app\ChatGPT.exe' with working directory 'D:\repos\kotlin-desktop-toolkit'. Access is denied. ``

if i didn't misread the error message, maybe this can be resolved by simply changing the working directory? e.g., cd C:\ first. or somewhere else you have read access. also you might wanna double check if you have copied the one-liner completely

Alovchin91 · 4 days ago

I've updated the message; tried with many different options; the profile directory, the System32 directory (MSIX packages use it by default), the app directory inside the package.

Does double-clicking ChatGPT.exe from the Explorer work for you? Because I get the same:

<img width="1116" height="268" alt="Image" src="https://github.com/user-attachments/assets/ce861a91-6f35-47a5-b0e3-079d7ca30806" />

I'm pretty sure Windows protects executables in the MSIX packages.

Alovchin91 · 4 days ago

@junhaoliao Have you installed Codex from Microsoft Store or a loose MSIX installer? (Does it exist?) Have you had Dev Mode enabled on Windows when you installed it?

junhaoliao · 4 days ago
I've updated the message; tried with many different options; the profile directory, the System32 directory (MSIX packages use it by default), the app directory inside the package. Does double-clicking ChatGPT.exe from the Explorer work for you? Because I get the same: <img alt="Image" width="1116" height="268" src="https://private-user-images.githubusercontent.com/8490695/622526961-ce861a91-6f35-47a5-b0e3-079d7ca30806.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODQxODY4MTcsIm5iZiI6MTc4NDE4NjUxNywicGF0aCI6Ii84NDkwNjk1LzYyMjUyNjk2MS1jZTg2MWE5MS02ZjM1LTQ3YTUtYjBlMy0wNzlkN2NhMzA4MDYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDcxNiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA3MTZUMDcyMTU3WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NzJhMTEyMDdkMjI1ZDkyNjI0NTA5OTMyODdkN2EzMzE3YjcwOGYxYTlhYWMzNGE5MWUyNjdhNjIzNTNmNGU3NCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.l3HUfMJ2OMmDte3jsaalxE-1SLXIaEhxxjkNmpHwCxk"> I'm pretty sure Windows protects executables in the MSIX packages.

the mitigation has worked on 2 of my computers. (i once hacked the installation on one computer but the other one is clean.) if double clicking ChatGPT.exe from the Explorer doesn't work for you, i suspect your chatgpt app installation is already broken. if anything, consider uninstalling and reinstalling from the microsoft app store? fwiw, your chatgpt sessions / preferences shouldn't be lost from reinstallation cuz they are stored in ~/.codex

junhaoliao · 4 days ago

@Alovchin91

a loose MSIX installer

i did it on one of my computers months ago. though after a few auto-upgrades, i'm pretty sure now all installations have been migrated to be managed by the microsoft app store these days

Have you had Dev Mode enabled on Windows when you installed it?

this is interesting... i don't remember enabling Dev mode on both computers

Naetmul · 4 days ago

The same issue still persists after updating to 26.707.12708.0 from 26.707.9981.0

Alovchin91 · 4 days ago
if anything, consider uninstalling and reinstalling from the microsoft app store?

That indeed worked, although I don't think it meant that the installation was broken since this happened independently on 2 of my machines 🤔 I wonder now at what point does Windows decide to protect these files? I'll try to investigate, for the posterity.

BTW the workaround works now @junhaoliao , thank you so much!

Racterrus · 4 days ago

The same issue is present in ChatGPT Desktop build 26.707.12708.0 as well.

jackluo923 · 4 days ago

Here's an auto-patcher I wrote to automatically patch Windows store installed ChatGPT (the MSIX/AppContainer sandbox blocks NODE_OPTIONS) while getting around some via a Windows Store Electron packaging "loophole" to patch the problem @junhaoliao identified previously. GitHub https://github.com/jackluo923/chat-gpt-patcher

It is provided for educational purposes only and is not affiliated with or endorsed by OpenAI or Microsoft. Feel free to improve it. You'll need to enable Windows developer mode first, then launch an elevated power shell terminal for execution. I've tested it with multiple Store ChatGPT version on my Asus Zenbook A16 with Qualcomm Snapdragon X2 Elite Extreme so it should fix the crashing problem.

isaackendall · 4 days ago

Independent reproduction from Windows 11 Pro ARM64 running in Parallels Desktop on Apple silicon.

  • Microsoft Store package: OpenAI.Codex_26.707.12708.0_arm64__2p2nqsd0c76g0.
  • It reproduces after a complete current-user reset: the Store package was removed, its associated local package-data directory was confirmed absent, then the app was installed fresh. Repair/reset/reinstall did not help.
  • I also removed and reinstalled the separate @openai/codex CLI and deleted the prior .codex state. At the time of this crash the CLI was unauthenticated and had no MCP servers configured, so no Revit, pyRevit, or MCP configuration was present.
  • The app reached sign-in/account loading, then exited. The fresh main-process log began at 09:20:22Z; a new 44,572,896-byte Crashpad minidump was written at 09:20:33Z (about 11 seconds).
  • I have not independently decoded this minidump to confirm 0xC06D007F, but the environment, fresh-install result, and timing match this issue exactly.

Happy to provide the minidump privately if it would help diagnosis.

huangzclaw · 4 days ago

I also have another question: If the GPT team officially fixes this issue but we can’t update the version directly by opening the GUI, how should we go about resolving it? As I understand it, would we use the CLI or another agent?

SwordKirito33 · 4 days ago

Also reproduces on a newer build: 26.707.12708.0 (arm64, Store),
Windows 11 build 26200, Snapdragon.

Identical DelayLoadInfo: node.exe / napi_create_function /
GetLastError 127, hmod == ChatGPT.exe load base.

In my case the crash is gated on sign-in: the app is stable indefinitely
on the login screen and dies ~2-3s after sign-in completes — consistent
with the addon load being triggered by a post-login feature flag fetch.

ptsoo · 4 days ago

DOWNGRADE NOW. EVERYTHING IS PEACEFUL.

It has been resolved after a temporary downgrade.
(ref: https://github.com/Wangnov/codex-app-mirror/releases/tag/codex-app-26.707.71524)

FYI, 26.707.91948 version has been released since 26.707.72221 and later, but still unresolved.

nxt-ryan · 4 days ago

After restarting my pc, the app is working again.

jin-ai95 · 4 days ago

Confirming this issue with a completed structural minidump analysis from an affected machine (Windows 11 Home 25H2 build 26200.8875, app 26.707.12708.0 — also reproduced on 26.707.9981.0). Root cause fully measured; posting in case it saves the team triage time.

DelayLoadInfo extracted from two independent WER minidumps (custom parser, exception stream → ExceptionInformation[0]):

| Field | Value |
|---|---|
| Exception | 0xc06d007f at KernelBase.dll+0xc1ada (RaiseException) |
| szDll | node.exe |
| szProcName | napi_module_register |
| hmodCur | ChatGPT.exe image base (delay-load hook remapped node.exeGetModuleHandle(NULL)) |
| dwLastError | 127 (ERROR_PROC_NOT_FOUND) |

Faulting module: app.asar.unpacked\node_modules\@worklouder\device-kit-oai\...\@serialport\bindings-cpp\build\Release\serialport.node (229,376 bytes). Its delay-import descriptor (RVA 0x346c4, read from the pristine on-disk PE) imports 57 symbols (56 napi_* + 4 uv_*) from node.exe.

Export-table diff on disk: ChatGPT.exe exports 2 symbols total — 0 of the 57 required. chrome.dll in the same app directory exports 3,174 names including all 57. So the Node-API surface ships in the app but lives in the wrong module for node-gyp's win_delay_load_hook.

Crash-thread stack: KernelBase!RaiseException ← serialport.node delay-load thunk ← setupapi.dll ← ntdll!LdrpCallInitRoutine ← chrome.dll — i.e., during serialport.node DllMain inside LoadLibrary, triggered when the [desktop-notifications] service loads the Work Louder device kit ([desktop-notifications][unhandled-rejection] Error: A dynamic link library (DLL) initialization routine failed. logged at dump time, to the second).

Notes that may help:

  • The exception is contained (loader converts to STATUS_DLL_INIT_FAILED; the main process survives and keeps logging 2s later) — the user-visible damage is one WER report + 10–24 MB minidump per occurrence: 537 events / peak 136 per hour on this machine on 2026-07-16, with onset at 12:35:12 KST (03:35 UTC) with zero local changes — consistent with the server-side flag trigger mentioned above. The storm stopped by itself at 19:57:59 KST the same day.
  • The load-failure lines exist in earlier sessions the same day on 26.707.9981 too — the ABI mismatch is version-independent; the flag only changes trigger frequency.
  • Both dumps are byte-identical in signature (same RVAs 0x28430/0x34b34/0x346c4) — one deterministic failure.

Possible fixes from the data: export napi forwarders from ChatGPT.exe; resolve the delay-load against chrome.dll for bundled native modules; guard the device-kit init on win32; or run device detection in the bundled real node.exe (runtimes\cua_node\...\bin\node.exe, v24.14.0, which exports napi).

Happy to share the two minidumps + full crash-timeline CSV (WER Report Id 2c083f55-34e9-4256-aabd-261892c1dd54).

pincode-dev · 4 days ago

I've just launched the ChatGPT/Codex desktop app normally. The currently installed version is OpenAI.Codex 26.707.12708.0 ARM64 (OpenAI.Codex_26.707.12708.0_arm64__2p2nqsd0c76g0). It has remained running and responsive for at least five minutes without crashing, with no NODE_OPTIONS workaround applied. The crash was previously consistently reproducible on 26.707.9981.0 ARM64.

It looks like the issue has been resolved, although I cannot confirm whether this was due to the app update or a server-side change.
Can anyone else confirm?

jin-ai95 · 4 days ago

Confirming on x64 (26.707.12708.0, Windows 11 build 26200.8875) — and I can help disambiguate app-update vs server-side:

  • The crashes continued after updating to 26.707.12708.0 (WER events at 10:46:58Z, 10:52:58–53:11Z, 10:57:56–59Z, all on the new build, same 0xc06d007f signature).
  • They then stopped abruptly at 10:57:59Z with zero local changes on this machine. Zero WER events since (2.5+ hours).

So on x64 this looks server-side (flag change), not the app update. Which would mean the underlying packaging issue (host exe exporting 0/57 required napi symbols — details in my comment above) is likely still present and could re-trigger if the flag flips back.

nathanestone-alt · 4 days ago

Confirming the same failure on another Windows 11 ARM64 machine:

  • Device: Microsoft Surface Laptop 7, Snapdragon X Elite (X1E80100), 12 cores
  • OS: Windows 11 Home 25H2, build 10.0.26200
  • Store package: OpenAI.Codex_26.707.9981.0_arm64__2p2nqsd0c76g0
  • Desktop release in logs: 26.707.72221
  • Reproduction: window renders, then the full process exits after roughly 5 seconds on every launch
  • Crashpad dump: 44,565,376 bytes; SHA-256 c4fb2aba2d54e3428156b9a041794ef5ce25c2850c70cb575b40754ada062116

The minidump has the same decoded signature:

  • exception 0xC06D007F / ERROR_PROC_NOT_FOUND
  • delay-loaded target node.exe
  • missing procedure napi_create_function
  • @worklouder, @serialport, and node.napi.node are present in the dump

The desktop log reaches a visible renderer and browser_use_iab_backend_startup_ready, then stops abruptly. Uninstall/reinstall, app-state reset, deleting and cleanly re-provisioning the cua_node runtime, and restoring a clean Codex config did not change the crash.

I am not attaching the minidump publicly because it may contain process memory, but can provide it privately if a maintainer supplies a safe upload route.

pjperez · 4 days ago

Confirming this still reproduces on the latest build 26.707.12708.0 (ARM64) — updating from 9981 did not fix it, and an app Reset doesn't help either (the fault is in the signed program binaries, not user cache).

Decoded from my Crashpad minidump (Windows 11 ARM64, build 26200):

  • Exception 0xC06D007F (VC++ delay-load), dwLastError = 127 ERROR_PROC_NOT_FOUND
  • Failing import: napi_create_function delay-loaded from node.exe
  • The loader resolves node.exeChatGPT.exe (module base matches hmodCur in the DelayLoadInfo), whose export table contains only 2 exports and no N-API symbols
  • App fully initializes (account/model/thread lists succeed in the child node.exe process) then the main process dies ~5s in

So the regression is still shipping in 12708. 👍

431827701yx · 4 days ago

Follow-up from the same Windows x64 machine: the fault storm now appears to have stopped

This is a follow-up to my earlier x64 dump report in this issue. The machine remained on the same stable package; no Beta package was installed, no reinstall was performed, and no local configuration or workaround was applied.

Additional local evidence

  • Total Windows Application Error Event ID 1000 records for ChatGPT.exe / 0xC06D007F reached 368.
  • 138 new events occurred after my 14:02 local-time comment.
  • Two additional main-process sessions appeared at approximately 15:57 and 18:21, matching further user-visible interruptions.
  • The last matching event was recorded at 18:48:30 local time.
  • The installed executable is still from OpenAI.Codex_26.707.9981.0_x64__2p2nqsd0c76g0 (file version 150.0.7871.115). OpenAI.CodexBeta is not installed.

Current state

The stable app was launched again at approximately 21:55. A fresh live sample from 22:04:44 to 22:05:44 showed:

Event count: 368 -> 368
Latest event: 18:48:30 -> 18:48:30
ChatGPT process set: unchanged

This aligns closely with the separate x64 report above where faults stopped abruptly at 10:57:59Z (18:57:59 local) without a local change. The roughly nine-minute difference is consistent with a gradual server-side feature-gate rollout/rollback.

Inference: the immediate crash storm appears mitigated by a server-side change, but the packaged native-addon incompatibility remains present in 26.707.9981.0 x64 and could recur if the Codex Micro gate is re-enabled. Please keep the affected gate disabled for Windows x64/ARM64 and ship a package-level fix or graceful optional-import failure handling.

No dumps or full logs are attached publicly. The two retained dumps remain available through an OpenAI-approved private channel.

_Disclosure: this follow-up was prepared and posted through Codex at my explicit request._

Alovchin91 · 4 days ago

I can confirm that it works now on an ARM64 machine too.

fleps · 4 days ago

Can confirm that without doing anything, the app launched normally this morning (Version 26.707.72221).
Immediately had an internal "update" button, which updated it to vesion Version 26.707.91948 and remains working.

f7x57yqmvf-sketch · 4 days ago

Follow-up to my earlier HP OmniBook 3 / Snapdragon X Elite ARM64 reproduction:

As of July 16, 2026, the app is working again on this same machine. It now launches normally and remains open instead of exiting within approximately two seconds. I did not need to apply the proposed preload workaround.

I have not independently confirmed a package-level fix or rechecked the installed package version, so this observation is consistent with the server-side mitigation / feature-gate rollback others are reporting rather than proof that the shipped ARM64 binary has been corrected.

Fastkore · 4 days ago

Additional confirmation from Surface Pro 11 (Snapdragon X Elite, Windows 11 ARM64): the issue is still reproducible with Microsoft Store build 26.707.9981.0.

Current behavior:

  • Login/onboarding completes successfully.
  • The initial prompt can be submitted.
  • When the main chats window/list appears, the entire app exits.
  • Main ChatGPT.exe process exits with 0xC06D007F.
  • Renderer, GPU, utility, and crashpad child processes then exit with 0x00000000.

Current status on this machine:

  • App reset and reinstall did not help.
  • %USERPROFILE%\.codex was
wadawada0211 · 4 days ago

Update:

My Surface Pro (Windows 11 ARM64) is now working again.

Current version:
OpenAI.Codex 26.707.12708.0 ARM64

I did not apply the preload workaround.
The app now launches normally and has remained stable during testing.

It is unclear whether this was resolved by the app update, a server-side change, or a combination of both.

canenoneko · 4 days ago

The same problem has reappeared in the newly updated version 26.715.2305.0. The environment is Windows 11 x64.
在刚刚更新的版本26.715.2305.0中又出现了相同的问题,环境Windows11 x64

shijie-oai contributor · 3 days ago

Really appreciate all the feedback. https://github.com/openai/codex/issues/33375#issuecomment-4991172145 we have addressed the issue.