[app][macOS][26.727.51351] browser_crashpad_handler SIGTRAPs 2ms after launch, launchd respawns it, Crashpad/pending fills disk at ~17GB/day

Open 💬 5 comments Opened Aug 4, 2026 by CMTrago

Summary

browser_crashpad_handler shipped inside ChatGPT.app crashes 2.0 ms after launch with EXC_BREAKPOINT (SIGTRAP) inside CrashpadHandlerMain. Its parent is launchd, which immediately relaunches it, and each cycle writes a .dmp + _sidecar.json pair into Crashpad/pending. Nothing ever uploads or expires them.

The result is a self-feeding loop: the crash handler is the thing generating the crashes.

This filled a 228 GB boot disk from 34 GB free to literally 0 bytes in 48 hours, at which point the machine could not create new files at all.

This looks related to #25921, #30335 and #27136, but I have not seen the actual crash signature posted anywhere, so I am adding it here. Two differences from #27136 in particular: my handler runs from the installed /Applications bundle rather than a leftover /Volumes/Codex Installer/ mount, and my symptom is disk exhaustion rather than CPU.

Environment

| | |
|---|---|
| App | ChatGPT.app 26.727.51351 (build 6119) |
| Bundle ID | com.openai.codex |
| Codex Framework (Chromium) | 150.0.7871.182 |
| macOS | 15.7.3 (24G419) |
| Hardware | Mac16,10 — Apple M4, 16 GB |
| Installed | 2026-07-31 (via Sparkle auto-update) |

Sparkle reports auto-update enabled and a successful check on 2026-08-04 that offered nothing newer, so this is the current shipping build.

Crash signature

From ~/Library/Logs/DiagnosticReports/browser_crashpad_handler-*.ips:

exception   : {"type": "EXC_BREAKPOINT", "signal": "SIGTRAP",
               "codes": "0x0000000000000001, 0x0000000102ed75d8"}
procPath    : /Applications/ChatGPT.app/Contents/Frameworks/
              Codex Framework.framework/Versions/150.0.7871.182/Helpers/browser_crashpad_handler
parentProc  : launchd  (pid 1)
responsible : ChatGPT
coalition   : com.openai.codex

procLaunch  : 2026-08-02 00:31:08.2932
captureTime : 2026-08-02 00:31:08.3781
lifetime    : 2.0 ms

Faulting thread — entirely inside the handler's own code:

browser_crashpad_handler  +0x435d8  CrashpadHandlerMain
browser_crashpad_handler  +0x42fe0  CrashpadHandlerMain
browser_crashpad_handler  +0x9a730  CrashpadHandlerMain
browser_crashpad_handler  +0x9a748  CrashpadHandlerMain
browser_crashpad_handler  +0x393a0  CrashpadHandlerMain
browser_crashpad_handler  +0x360c0  CrashpadHandlerMain
browser_crashpad_handler  +0x776c   CrashpadHandlerMain
dyld                      +0x6b98   start

EXC_BREAKPOINT at 2 ms with no other module on the stack reads as a CHECK()/DCHECK() assertion failing during handler startup — i.e. it aborts before it ever reaches its normal service loop. The instruction at PC decodes to brk #0.

Measured growth rate

Counting files in Crashpad/pending at 20-second intervals on an otherwise idle machine:

t=0     files=34   size=2856 KB
t=20s   files=74   size=6216 KB    (+40 files, +3360 KB)
t=40s   files=92   size=7728 KB    (+18 files, +1512 KB)
t=60s   files=92   size=7728 KB    (+0,  quiet)

Peak 2 dumps/sec ≈ 0.6 GB/hour. It is bursty rather than continuous, but the long-run average matches: 34 GB consumed over 48 hours ≈ 0.7 GB/hour ≈ 17 GB/day. That is meaningfully worse than the "+5 GB/day" in #25921.

Snapshot at the point the disk hit zero: 127,137 files in Crashpad/pending, roughly 82 KB per dump.

Steps to reproduce

  1. Install ChatGPT.app 26.727.51351 on macOS 15.7.3 (Apple silicon).
  2. Use it normally for a day or two.
  3. du -sh ~/Library/"Application Support"/Codex/Crashpad/pending

I have not isolated a specific user action that triggers a burst — it happens in the background while the app is merely running.

Expected

Crashpad should upload and delete dumps, or enforce a retention cap / TTL. It should never be possible for the crash reporter to consume the entire boot volume.

Separately: a handler that fails its startup assertion should not be relaunched indefinitely by launchd. Some backoff or a give-up threshold would turn a disk-filling outage into a silently degraded crash reporter, which is a much better failure mode.

Suggested fixes

  1. Bound the directory. A size cap or TTL on Crashpad/pending (e.g. keep the last N dumps or 24 hours' worth) would prevent this entire class of failure regardless of the root cause.
  2. Fix the startup assertion that kills CrashpadHandlerMain at 2 ms.
  3. Add relaunch backoff so a handler that dies immediately isn't respawned at 2 Hz forever.
  4. Delete on successful upload, and if no upload endpoint is configured, don't write dumps at all.

Item 1 alone would have prevented the outage.

Workaround for anyone hitting this

Note that once the disk is genuinely at 0 bytes, many tools stop working, and rm -rf <dir>/* fails with argument list too long at this file count. This works:

find ~/Library/Application\ Support/Codex/Crashpad/pending -type f -delete

It frees space progressively, so the system becomes usable again partway through. I automated it with an hourly launchd agent since the directory refills.

View original on GitHub ↗

5 Comments

Apex-Studio-He · 21 days ago

I reproduced the same disk-filling Crashpad self-crash loop, but with a much larger accumulation. The foreground app remained usable and I did not observe any visible app or system crash.

Environment

  • App bundle version: 26.730.61639
  • CFBundleVersion: 6234
  • Current Codex Framework after relaunch: 151.0.7922.71
  • Framework referenced by the accumulated dumps: 150.0.7871.128
  • macOS: 15.6.1 (24G90)
  • Architecture/model: arm64 / Mac14,2
  • RAM: 16 GB

Accumulation

The affected directory was:

~/Library/Application Support/Codex/Crashpad/pending

Before cleanup:

42.6 GiB
531,688 pending files

The files were paired minidumps and sidecars. Sample sizes:

164,480 bytes  <uuid>.dmp
2 bytes        <uuid>_sidecar.json

Daily growth measured from file metadata:

2026-08-02  146,680 files  11.23 GiB
2026-08-03  104,618 files   8.01 GiB
2026-08-04   48,854 files   3.74 GiB
2026-08-05   81,194 files   6.22 GiB
2026-08-06  150,224 files  11.51 GiB

Exact crash signature

Running strings on multiple sampled minidumps consistently exposed this fatal assertion:

FATAL:third_party/crashpad/crashpad/handler/mac/exception_handler_server.cc:76
Check failed: kr == KERN_SUCCESS.
mach_port_request_notification: (os/kern) invalid capability (20)

The dump identified the crashing executable as:

/Applications/ChatGPT.app/Contents/Frameworks/Codex Framework.framework/Versions/150.0.7871.128/Helpers/browser_crashpad_handler

and included:

--annotation=prod=ChatGPT_Mac

This confirms that the crash reporter itself was failing and producing reports about its own failure, rather than the foreground app visibly crashing.

Update/relaunch timing

The app bundle had already updated, but an old-framework dump was still created at 2026-08-06 22:32:15. A clean app relaunch at 22:37 started Framework 151.0.7922.71. The pending directory's final modification time was 22:36:46, and it did not grow during a post-relaunch observation window.

This suggests the loop may involve an old Crashpad helper surviving an in-place update until a full relaunch, in addition to the missing retention/size cap.

I did not attach raw minidumps because they may contain private memory or local paths. The 531k files were removed with find ... -delete, which freed space progressively. A hard size/count cap or TTL would have prevented this from consuming most of the boot disk.

whatcall · 19 days ago

Same issue on macOS 15.7.4, Apple M3 Max.
chatGPT 26.730.61309

AirHua-byte · 4 days ago

I can confirm the same Crashpad self-crash loop on macOS arm64, with one additional trigger/timeline data point.

  • 63,028 minidumps and 63,032 sidecars accumulated in about 18 hours: 11 GiB, roughly one pair per second.
  • LLDB identifies the crashing process as browser_crashpad_handler 151.0.7922.137 with EXC_BREAKPOINT; changing PIDs and --monitor-self confirm the crash/respawn loop.
  • macOS unified logs repeatedly show exception_handler_server.cc:76, Check failed: kr == KERN_SUCCESS, and mach_port_request_notification: invalid capability (20).
  • The first dump appeared within the same second as a successful Codex shell tool invocation that piped stdin to a GUI applications CLI. The child process itself exited 0. This suggests the terminal/subprocess lifecycle may expose the invalid Mach-port state; the child process was not the crashing process.
  • The loop is no longer active after updating/relaunching; the current .170 framework has produced no further rapid growth.

I am not attaching raw minidumps because they may contain local paths or private process data. I can provide a redacted sample and a Codex /feedback session ID privately if useful.

laputaliu · 2 days ago

Reproduced on a newer ChatGPT desktop build after updating and restarting the app.

Environment

  • ChatGPT app: 26.820.60940 (bundle build 7119)
  • Codex Framework / Chromium: 151.0.7922.170
  • macOS: 15.5 (24F74)
  • Hardware: Apple Silicon, Mac14,7
  • Bundle/coalition: com.openai.codex

Reproduction after update

The previous Crashpad/pending backlog had been cleaned before retesting. With the updated app running:

2026-08-26 13:18:16  dumps=281  dump_bytes=46,117,280
2026-08-26 13:18:29  dumps=293  dump_bytes=48,084,704

That is 12 new minidumps in 13 seconds, still approximately one crash per second. Each observed .dmp is about 160 KB and has a 24-byte _sidecar.json, projecting to roughly 14 GB/day. Before cleanup this had consumed more than 150 GB and left the macOS data volume 99% full.

Crash signature

The Apple diagnostic report identifies the bundled helper itself:

procPath    : /Applications/ChatGPT.app/Contents/Frameworks/
              Codex Framework.framework/Versions/151.0.7922.170/
              Helpers/browser_crashpad_handler
parentProc  : launchd
responsible : ChatGPT
exception   : EXC_BREAKPOINT / SIGTRAP

The faulting thread begins inside logging$internal$cxxbridge1$194$init_rust_logging, followed by CrashpadHandlerMain frames. The main ChatGPT UI remains usable while launchd repeatedly restarts the crash handler and Crashpad/pending grows in the background.

Updating to 26.820.60940 therefore does not resolve the crash loop. A sanitized Apple .ips diagnostic is attached; crash-report UUIDs, local user ID, boot-session UUID, and regional eligibility metadata were redacted while retaining the stack trace and binary paths.

<details>
<summary>Sanitized Apple .ips diagnostic</summary>

{"app_name":"browser_crashpad_handler","timestamp":"2026-08-26 12:36:20.00 +0800","app_version":"","slice_uuid":"4c4c44b3-5555-3144-a1aa-0e8584cdeddb","build_version":"","platform":1,"share_with_app_devs":1,"is_first_party":1,"bug_type":"309","os_version":"macOS 15.5 (24F74)","roots_installed":0,"incident_id":"REDACTED","name":"browser_crashpad_handler"}
{
  "uptime" : 6600,
  "procRole" : "Unspecified",
  "version" : 2,
  "userID" : 0,
  "deployVersion" : 210,
  "modelCode" : "Mac14,7",
  "coalitionID" : 3763,
  "osVersion" : {
    "train" : "macOS 15.5",
    "build" : "24F74",
    "releaseType" : "User"
  },
  "captureTime" : "2026-08-26 12:36:20.7493 +0800",
  "codeSigningMonitor" : 1,
  "incident" : "REDACTED",
  "pid" : 25563,
  "translated" : false,
  "cpuType" : "ARM-64",
  "roots_installed" : 0,
  "bug_type" : "309",
  "procLaunch" : "2026-08-26 12:36:17.2366 +0800",
  "procStartAbsTime" : 160340277600,
  "procExitAbsTime" : 160424550981,
  "procName" : "browser_crashpad_handler",
  "procPath" : "\/Applications\/ChatGPT.app\/Contents\/Frameworks\/Codex Framework.framework\/Versions\/151.0.7922.170\/Helpers\/browser_crashpad_handler",
  "parentProc" : "launchd",
  "parentPid" : 1,
  "coalitionName" : "com.openai.codex",
  "crashReporterKey" : "REDACTED",
  "appleIntelligenceStatus" : {"state":"redacted"},
  "responsiblePid" : 25556,
  "responsibleProc" : "ChatGPT",
  "codeSigningID" : "browser_crashpad_handler",
  "codeSigningTeamID" : "2DC432GLL2",
  "codeSigningFlags" : 570499857,
  "codeSigningValidationCategory" : 6,
  "codeSigningTrustLevel" : 4294967295,
  "codeSigningAuxiliaryInfo" : 0,
  "instructionByteStream" : {"beforePC":"5f3\/F03dAJRg4gqR4QMAkXNN\/5f+\/f8XYOIKkeFjAJFvTf+X1P\/\/Fw==","atPC":"AAAg1AAAQNQgACDU\/wMG0fxvFan0Txap\/XsXqf3DBZHzAwGqv\/88qQ=="},
  "bootSessionUUID" : "REDACTED",
  "sip" : "enabled",
  "exception" : {"codes":"0x0000000000000001, 0x0000000102ad4370","rawCodes":[1,4339876720],"type":"EXC_BREAKPOINT","signal":"SIGTRAP"},
  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},
  "faultingThread" : 0,
  "threads" : [{"triggered":true,"id":294847,"threadState":{"x":[{"value":1271311370320},{"value":1271310654193},{"value":1271311370240},{"value":1271310656817},{"value":84},{"value":84},{"value":0},{"value":0},{"value":2},{"value":1472},{"value":1271312482304},{"value":129328},{"value":129328},{"value":4340174709},{"value":99},{"value":6871947674},{"value":6551224912},{"value":1271310319616},{"value":0},{"value":6128051832},{"value":1},{"value":0},{"value":6128049776},{"value":6128049392},{"value":14757395258967641293},{"value":6128052504},{"value":1},{"value":1271312482336},{"value":1271312483776}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4339874696},"cpsr":{"value":2147487744},"fp":{"value":6128050320},"sp":{"value":6128049360},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":4339876720,"matchesCrashFrame":1},"far":{"value":0}},"frames":[{"imageOffset":1049456,"symbol":"logging$internal$cxxbridge1$194$init_rust_logging","symbolLocation":354156,"imageIndex":0},{"imageOffset":1046508,"symbol":"logging$internal$cxxbridge1$194$init_rust_logging","symbolLocation":351208,"imageIndex":0},{"imageOffset":1060708,"symbol":"logging$internal$cxxbridge1$194$init_rust_logging","symbolLocation":365408,"imageIndex":0},{"imageOffset":1060480,"symbol":"logging$internal$cxxbridge1$194$init_rust_logging","symbolLocation":365180,"imageIndex":0},{"imageOffset":128368,"symbol":"CrashpadHandlerMain","symbolLocation":102172,"imageIndex":0},{"imageOffset":912072,"symbol":"logging$internal$cxxbridge1$194$init_rust_logging","symbolLocation":216772,"imageIndex":0},{"imageOffset":910500,"symbol":"logging$internal$cxxbridge1$194$init_rust_logging","symbolLocation":215200,"imageIndex":0},{"imageOffset":596552,"symbol":"CrashpadHandlerMain","symbolLocation":570356,"imageIndex":0},{"imageOffset":133200,"symbol":"CrashpadHandlerMain","symbolLocation":107004,"imageIndex":0},{"imageOffset":123240,"symbol":"CrashpadHandlerMain","symbolLocation":97044,"imageIndex":0},{"imageOffset":26364,"symbol":"CrashpadHandlerMain","symbolLocation":168,"imageIndex":0},{"imageOffset":27544,"imageIndex":1}]},{"id":294850,"frames":[{"imageOffset":3124,"imageIndex":4},{"imageOffset":38756,"imageIndex":4},{"imageOffset":4008,"imageIndex":4},{"imageOffset":595416,"symbol":"CrashpadHandlerMain","symbolLocation":569220,"imageIndex":0},{"imageOffset":596400,"symbol":"CrashpadHandlerMain","symbolLocation":570204,"imageIndex":0},{"imageOffset":1089728,"symbol":"logging$internal$cxxbridge1$194$init_rust_logging","symbolLocation":394428,"imageIndex":0},{"imageOffset":27660,"imageIndex":5},{"imageOffset":7040,"imageIndex":5}],"threadState":{"x":[{"value":268451845},{"value":17179869186},{"value":0},{"value":0},{"value":0},{"value":11008001179648},{"value":48},{"value":0},{"value":0},{"value":17179869184},{"value":48},{"value":0},{"value":0},{"value":0},{"value":2563},{"value":0},{"value":18446744073709551569},{"value":8414699576},{"value":0},{"value":0},{"value":48},{"value":11008001179648},{"value":0},{"value":0},{"value":4340793344},{"value":0},{"value":17179870210},{"value":18446744073709550527},{"value":1026}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6550795168},"cpsr":{"value":4096},"fp":{"value":6128610000},"sp":{"value":6128609920},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6550719540},"far":{"value":0}}},{"id":294851,"frames":[{"imageOffset":3016,"imageIndex":4},{"imageOffset":16088,"imageIndex":6},{"imageOffset":592564,"symbol":"CrashpadHandlerMain","symbolLocation":566368,"imageIndex":0},{"imageOffset":588208,"symbol":"CrashpadHandlerMain","symbolLocation":562012,"imageIndex":0},{"imageOffset":592112,"symbol":"CrashpadHandlerMain","symbolLocation":565916,"imageIndex":0},{"imageOffset":27660,"imageIndex":5},{"imageOffset":7040,"imageIndex":5}],"threadState":{"x":[{"value":14},{"value":4294938304970752599},{"value":999993250},{"value":68719460488},{"value":14680198217728},{"value":14306536062976},{"value":48},{"value":0},{"value":999993250},{"value":3},{"value":13835058055282163714},{"value":9600000000},{"value":0},{"value":0},{"value":0},{"value":0},{"value":18446744073709551578},{"value":8414703656},{"value":0},{"value":174740699873},{"value":1271310582464},{"value":1000000000},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6549403472},"cpsr":{"value":2147487744},"fp":{"value":6129184576},"sp":{"value":6129184544},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6550719432},"far":{"value":0}}},{"id":295251,"frames":[{"imageOffset":7020,"imageIndex":5}],"threadState":{"x":[{"value":6129758208},{"value":10243},{"value":6129221632},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6129758208},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6550969196},"far":{"value":0}}},{"id":295252,"frames":[{"imageOffset":7020,"imageIndex":5}],"threadState":{"x":[{"value":6130331648},{"value":10755},{"value":6129795072},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6130331648},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6550969196},"far":{"value":0}}}],
  "usedImages" : [
  {
    "source" : "P",
    "arch" : "arm64",
    "base" : 4338827264,
    "size" : 1376256,
    "uuid" : "4c4c44b3-5555-3144-a1aa-0e8584cdeddb",
    "path" : "\/Applications\/ChatGPT.app\/Contents\/Frameworks\/Codex Framework.framework\/Versions\/151.0.7922.170\/Helpers\/browser_crashpad_handler",
    "name" : "browser_crashpad_handler"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6547161088,
    "size" : 636112,
    "uuid" : "9cf0401a-a938-389e-a77d-9e9608076ccf",
    "path" : "\/usr\/lib\/dyld",
    "name" : "dyld"
  },
  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6551212032,
    "size" : 31568,
    "uuid" : "519f3220-7499-334a-96d6-ccf3dc28f986",
    "path" : "\/usr\/lib\/system\/libsystem_platform.dylib",
    "name" : "libsystem_platform.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6550716416,
    "size" : 243284,
    "uuid" : "60485b6f-67e5-38c1-aec9-efd6031ff166",
    "path" : "\/usr\/lib\/system\/libsystem_kernel.dylib",
    "name" : "libsystem_kernel.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6550962176,
    "size" : 51784,
    "uuid" : "647b91fc-96d3-3bbb-af08-970df45257c8",
    "path" : "\/usr\/lib\/system\/libsystem_pthread.dylib",
    "name" : "libsystem_pthread.dylib"
  },
  {
    "source" : "P",
    "arch" : "arm64e",
    "base" : 6549180416,
    "size" : 288576,
    "uuid" : "8bf83cda-8db1-3d46-94b0-d811bd77e078",
    "path" : "\/usr\/lib\/system\/libdispatch.dylib",
    "name" : "libdispatch.dylib"
  }
],
  "sharedCache" : {
  "base" : 6546325504,
  "size" : 5047205888,
  "uuid" : "d7397d7f-8df9-3920-81a7-c0a144be9c51"
},
  "legacyInfo" : {
  "threadTriggered" : {

  }
},
  "logWritingSignature" : "5770783e8f3b1380c276edee547e00f1530e2f08",
  "trialInfo" : {
  "rollouts" : [
    {
      "rolloutId" : "60186475825c62000ccf5450",
      "factorPackIds" : {

      },
      "deploymentId" : 240000083
    },
    {
      "rolloutId" : "639124e81d92412bfb4880b3",
      "factorPackIds" : {

      },
      "deploymentId" : 240000012
    }
  ],
  "experiments" : [

  ]
}
}

</details>

aiengine-cwx · 1 day ago

+1