macOS startup panic when SystemConfiguration DNS state is unavailable

Resolved 💬 4 comments Opened Mar 20, 2026 by shawn-dsz Closed Mar 20, 2026
💡 Likely answer: A maintainer (github-actions[bot], contributor) responded on this thread — see the highlighted reply below.

What version of Codex is running?

codex-cli 0.116.0

Which model were you using?

Default startup path; crash happens before interactive use

What platform is your computer?

macOS Darwin 25.1.0 arm64

What issue are you seeing?

codex panics on startup if macOS SystemConfiguration DNS state is unavailable.

In my case this happens when launching codex inside the Superset desktop app terminal. In that environment:

scutil --proxy
scutil --dns

returns:

<dictionary> {
}
No DNS configuration available

Then running:

codex

crashes with:

thread 'main' (...) panicked at /Users/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/system-configuration-0.6.1/src/dynamic_store.rs:154:1:
Attempted to create a NULL object.
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Steps to reproduce

  1. Launch a shell in an environment where macOS SystemConfiguration DNS state is unavailable.
  2. Confirm with:
scutil --dns
  1. Run:
codex

Expected behavior

Codex should not panic. It should either:

  • continue without the reachability/DNS watcher, or
  • emit a normal error explaining that macOS networking state is unavailable.

Actual behavior

Codex aborts with a panic from the system-configuration crate.

Additional context

  • codex --version works and prints codex-cli 0.116.0
  • The crash happens during full startup
  • The same machine/user/install works normally in Warp, where scutil --dns returns standard resolver info
  • This seems related to SCDynamicStore / DynamicStore initialization returning NULL

View original on GitHub ↗

4 Comments

github-actions[bot] contributor · 5 months ago

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

  • #15296

Powered by Codex Action

shawn-dsz · 5 months ago

Closing as duplicate of #5914.

This reproduces the same macOS / panic, with an additional trigger detail: in the Superset terminal environment, DNS configuration

resolver #1
search domain[0] : tail92285c.ts.net
nameserver[0] : 100.100.100.100
if_index : 31 (utun5)
flags : Supplemental, Request A records, Request AAAA records
reach : 0x00000003 (Reachable,Transient Connection)
order : 100400

resolver #2
nameserver[0] : 111.220.1.1
nameserver[1] : 111.220.2.2
if_index : 14 (en0)
flags : Request A records
reach : 0x00000002 (Reachable)
order : 200000

resolver #3
domain : tail92285c.ts.net.
nameserver[0] : 100.100.100.100
if_index : 31 (utun5)
flags : Supplemental, Request A records, Request AAAA records
reach : 0x00000003 (Reachable,Transient Connection)
order : 100401

resolver #4
domain : local
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300000

resolver #5
domain : 254.169.in-addr.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300200

resolver #6
domain : 8.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300400

resolver #7
domain : 9.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300600

resolver #8
domain : a.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 300800

resolver #9
domain : b.e.f.ip6.arpa
options : mdns
timeout : 5
flags : Request A records
reach : 0x00000000 (Not Reachable)
order : 301000

DNS configuration (for scoped queries)

resolver #1
nameserver[0] : 111.220.1.1
nameserver[1] : 111.220.2.2
if_index : 14 (en0)
flags : Scoped, Request A records
reach : 0x00000002 (Reachable)

resolver #2
search domain[0] : tail92285c.ts.net
nameserver[0] : 100.100.100.100
if_index : 31 (utun5)
flags : Scoped, Request A records, Request AAAA records
reach : 0x00000003 (Reachable,Transient Connection) returns , while Warp on the same machine works normally.

shawn-dsz · 5 months ago

Correction to my previous comment: closing as duplicate of #5914.

This reproduces the same macOS system-configuration / DynamicStore panic. The extra trigger detail here is that inside the Superset terminal environment, scutil --dns returns No DNS configuration available, while Warp on the same machine works normally.

shawn-dsz · 5 months ago

Clarification: this was closed in favor of #15296, which is my other issue and now has the full repro details. This is not a duplicate from another reporter.