# failed to start codex app-server 해결: Windows 오류 문구 4가지별 조치

> Windows Codex 앱·Chrome 확장 실행 안됨: os error 3, nodePath, handshake 시간 초과, 0xC000001D별 원인과 .codex를 지우지 않는 해결 순서.

- Source: https://www.aifreeapi.com/ko/posts/codex-app-server-failed-to-start
- Language: ko
- Published: 2026-10-09
- Updated: 2026-10-09
- Publisher: AI Free API (https://www.aifreeapi.com)

Windows에서 Codex 앱이 열리지 않거나 Chrome 확장 사이드 패널에 app-server 오류가 뜨면, 먼저 오류 문구를 그대로 확인하세요. 같은 "실행 안됨"이라도 원인이 서로 다르고, 재설치만으로는 고쳐지지 않았다는 보고가 많으며, `.codex` 폴더를 지우면 대화 기록까지 잃을 수 있습니다. 2026년 10월 9일 기준 OpenAI가 원인과 수정 버전을 밝힌 경우는 하나도 없으므로, 아래 조치는 모두 GitHub 이슈와 포럼에서 사용자들이 확인한 우회책입니다.

| 오류 문구 | 보이는 곳 | 가장 흔한 원인 | 먼저 할 조치 | 고쳐졌다는 신호 |
| --- | --- | --- | --- | --- |
| `failed to start codex app-server: The system cannot find the path specified. (os error 3)` | Browser Use, 앱 내 브라우저, Chrome 플러그인 작업 | 업데이트로 지워진 옛 폴더 경로가 `config.toml`이나 `CODEX_CLI_PATH`에 남음 | 기록된 경로를 지금 있는 폴더로 고치기 | 페이지 이동과 스크린샷이 다시 됨 |
| `Codex app-server manifest entry is missing required path nodePath` (`resourcesPath`, `codexCliPath`) | ChatGPT Chrome·Edge·Brave 확장 사이드 패널의 "Unable to start ChatGPT" | `chrome-native-hosts-v2.json`이 지워진 런타임 폴더를 가리킴 | 데스크톱 앱을 먼저 켜고 기다린 뒤, 안 되면 JSON 경로 수정 | 사이드 패널에 대화 화면이 뜸 |
| `Codex app-server initialize handshake timed out` | 시작 직후 "ChatGPT failed to start" 대화상자 | 30초 안에 시작 준비가 끝나지 않음. 깨지거나 거대해진 `logs_2.sqlite`, 남은 프로세스, WSL 모드 | 트레이에서 완전히 종료하고 `logs_2.sqlite*`를 다른 폴더로 옮기기 | 창이 몇 초 안에 열림 |
| `code=3221225501` (0xC000001D), `Codex app-server websocket closed` | 시작 직후 "ChatGPT failed to start" 대화상자 | Astrill VPN의 `ASProxy64.dll`, 또는 CPU가 지원하지 않는 명령 | 이벤트 뷰어에서 충돌 모듈 이름 확인 | `ASProxy64.dll`이 더 이상 로드되지 않고 앱이 열림 |

어느 갈래든 파일을 건드리기 전에 앱을 시스템 트레이에서 완전히 종료하고, `%USERPROFILE%\.codex`를 백업하는 것부터 시작합니다.

## Codex 앱과 ChatGPT 데스크톱 앱, 그리고 app-server

OpenAI 변경 기록에 따르면 2026년 7월 9일 [Codex는 ChatGPT 데스크톱 앱에 합류](https://learn.chatgpt.com/docs/changelog)했고, 공식 문서 제목도 지금은 [ChatGPT desktop app for Windows](https://learn.chatgpt.com/docs/windows/windows-app)입니다. 그래서 예전 Codex 앱을 쓰던 사람도 창 제목과 오류 대화상자에서 "ChatGPT"라는 이름을 보게 됩니다. 이슈에 올라온 로그를 보면 설치 패키지 이름은 여전히 `OpenAI.Codex`이고, 메인 프로세스는 `ChatGPT.exe`입니다([#32706](https://github.com/openai/codex/issues/32706), [#39015](https://github.com/openai/codex/issues/39015)).

이름이 비슷한 별도 패키지 `OpenAI.ChatGPT-Desktop`, 즉 ChatGPT Classic에는 Codex app-server가 들어 있지 않습니다. 일반 ChatGPT 다운로드 링크로 다시 설치하다가 이쪽을 깔게 되는 경우가 보고됐으니([#32706](https://github.com/openai/codex/issues/32706)), 재설치가 필요하면 Microsoft Store 제품 ID `9PLM9XGG6VKS`를 쓰세요.

```powershell
winget install --id 9PLM9XGG6VKS -s msstore
```

[공식 app-server 문서](https://learn.chatgpt.com/docs/app-server)는 app-server를 "Codex가 풍부한 클라이언트를 구동하는 인터페이스"로 설명합니다. 기본 연결 방식은 stdio이고, 클라이언트는 연결마다 `initialize` 요청을 한 번 보내야 합니다. 실제 화면에서는 `ChatGPT.exe`가 `%LOCALAPPDATA%\OpenAI\Codex\bin\...` 아래의 `codex.exe`를 `app-server` 인수와 함께 자식 프로세스로 띄웁니다. 앱 창, Browser Use, Chrome 확장은 모두 이 프로세스에 기대므로, 이것이 시작되지 못하면 겉으로는 "Codex가 안 열린다"로 보입니다.

## 손대기 전에: 트레이에서 완전히 종료하고 .codex 백업하기

창을 닫아도 앱은 끝나지 않습니다. Windows 시스템 트레이에 상주하는 기능이 들어간 뒤로는 마지막 창을 닫아도 `codex.exe`를 포함해 10개 안팎의 프로세스가 남아 데이터베이스 파일을 붙잡고 있다는 보고가 있습니다([#39015](https://github.com/openai/codex/issues/39015)). 트레이 아이콘을 오른쪽 클릭해 종료한 뒤, 아래 명령의 결과가 비어 있는지 확인하세요. 무엇인가 남아 있으면 작업 관리자에서 종료합니다.

```powershell
Get-Process ChatGPT, codex, node_repl -ErrorAction SilentlyContinue
```

`%USERPROFILE%\.codex`에는 스레드 색인인 `state_5.sqlite`, 로컬 대화 기록인 `sessions\`, `config.toml`, `auth.json`, 메모리와 플러그인 상태가 들어 있습니다. 이 폴더는 앱 패키지 밖에 있어서 재설치해도 그대로 남고, 그래서 재설치만으로는 여기에 남은 잘못된 경로가 고쳐지지 않습니다. 반대로 이 폴더를 지운 사용자는 대화 기록을 잃었고([#49265](https://github.com/openai/codex/issues/49265)), 0xC000001D는 고쳐지지도 않았습니다([#30884](https://github.com/openai/codex/issues/30884)). OpenAI 지원팀도 포럼 답변에서 백업 없이 `.codex`를 지우지 말라고 했습니다([커뮤니티 답변](https://community.openai.com/t/1379497)).

```powershell
$stamp = Get-Date -Format "yyyyMMdd-HHmm"
Copy-Item "$env:USERPROFILE\.codex" "D:\codex-backup-$stamp" -Recurse
```

대화 기록이 많으면 이 폴더가 수십 GB가 될 수 있으니(한 사용자는 세션 파일 64개, 22.24GB) 여유 공간이 있는 드라이브를 고르세요.

이 밖에 진단에 쓰는 위치와 피해야 할 조치는 다음과 같습니다.

- 데스크톱 로그: `%LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\Codex\Logs\<연>\<월>\<일>\codex-desktop-*.log` (예전 빌드는 `%LOCALAPPDATA%\Codex\Logs`)
- Windows 설정의 앱 **초기화**(Reset)는 로그아웃되고, 한 사용자는 로컬 작업이 지워졌다고 보고했습니다([커뮤니티](https://community.openai.com/t/1400979)). 꼭 해야 한다면 **복구**(Repair)를 먼저 쓰세요. 다만 아래 네 갈래에서는 둘 다 효과가 보고되지 않았습니다.
- 관리자 권한으로 실행하면 Codex 에이전트도 관리자 권한을 물려받아 모든 명령이 관리자 권한으로 실행됩니다([공식 Windows 문서](https://learn.chatgpt.com/docs/windows/windows-app)). os error 3에는 효과가 없다는 보고가 여럿이니, 진단용으로 한 번 확인하는 데만 쓰세요.

## `failed to start codex app-server` os error 3: 옛 경로

Browser Use, 앱 내 브라우저, Chrome 플러그인으로 작업할 때 탭 목록은 보이는데 페이지 이동, DOM 스냅샷, 스크린샷에서 이 오류가 납니다. 이 작업을 맡는 `node_repl`이 `codex app-server --listen stdio://`를 띄우려다 실패하는 것이고, os error 3은 Windows의 "경로를 찾을 수 없음"(ERROR_PATH_NOT_FOUND)입니다. `os error 2`(파일 없음)로 나오는 경우도 같은 갈래입니다. 대표 이슈 [#19187](https://github.com/openai/codex/issues/19187)은 2026년 4월 23일부터 열려 있고, [#20206](https://github.com/openai/codex/issues/20206), [#26011](https://github.com/openai/codex/issues/26011) 등에도 2026년 9월 22일까지 "아직 그대로"라는 댓글이 달렸습니다.

원인은 이렇습니다. 앱은 패키지 안의 보조 실행 파일을 사용자 폴더의 `%LOCALAPPDATA%\OpenAI\Codex\bin\<해시>\`와 `%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\<해시>\bin\`으로 복사해 씁니다. 그런데 이 해시 경로가 다른 파일에도 기록되고, 자동 업데이트가 옛 해시 폴더를 지워도 기록은 그대로 남습니다([#26011](https://github.com/openai/codex/issues/26011), [#28474](https://github.com/openai/codex/issues/28474)). 기록이 남는 곳은 세 군데입니다.

- `%USERPROFILE%\.codex\config.toml`의 `[mcp_servers.node_repl]` 블록(`command`, `CODEX_CLI_PATH`, `NODE_REPL_NODE_PATH` 등)
- 사용자 환경 변수 `CODEX_CLI_PATH`
- `chrome-native-hosts-v2.json`(`%LOCALAPPDATA%\OpenAI\Codex\`와 `%USERPROFILE%\.codex\` 두 곳)

![config.toml, CODEX_CLI_PATH, chrome-native-hosts-v2.json 세 기록이 업데이트로 삭제된 옛 해시 폴더를 가리켜 os error 3과 missing nodePath가 나고, 지금 있는 새 해시 폴더로 고치면 Test-Path가 True가 되는 구조](https://www.aifreeapi.com/posts/ko/codex-app-server-failed-to-start/img/stale-hash-paths.webp)

### 기록된 경로와 실제 폴더 비교하기

앱을 완전히 종료한 상태에서, 지금 실제로 있는 실행 파일과 기록된 경로를 나란히 봅니다. 아래 명령은 아무것도 바꾸지 않습니다.

```powershell
# 1) 지금 존재하는 보조 실행 파일
Get-ChildItem "$env:LOCALAPPDATA\OpenAI\Codex" -Recurse -Include codex.exe, node_repl.exe, node.exe |
  Select-Object FullName, LastWriteTime

# 2) 사용자 환경 변수에 남은 경로
[Environment]::GetEnvironmentVariable("CODEX_CLI_PATH", "User")

# 3) config.toml에 기록된 경로
Select-String -Path "$env:USERPROFILE\.codex\config.toml" -Pattern "node_repl|CODEX_CLI_PATH|NODE_REPL"
```

2번과 3번에 나온 경로를 `Test-Path '<경로>'`로 하나씩 확인해 `False`가 나오면 그것이 원인입니다.

### config.toml과 CODEX_CLI_PATH 고치기

`config.toml`을 복사해 두고, `False`가 나온 경로를 1번에서 찾은 실제 폴더로 바꿉니다. 여러 보고자가 이 방법으로 해결했습니다([#26011](https://github.com/openai/codex/issues/26011), [#28474](https://github.com/openai/codex/issues/28474)). Windows 경로는 작은따옴표로 감싸야 합니다. 큰따옴표 안의 `\`는 TOML 이스케이프로 읽혀 `missing escaped value` 오류로 앱이 멈출 수 있습니다([#37616](https://github.com/openai/codex/issues/37616)).

```toml
[mcp_servers.node_repl]
command = 'C:\Users\<사용자>\AppData\Local\OpenAI\Codex\bin\<실제 해시>\node_repl.exe'

[mcp_servers.node_repl.env]
CODEX_CLI_PATH = 'C:\Users\<사용자>\AppData\Local\OpenAI\Codex\bin\<실제 해시>\codex.exe'
```

사용자 환경 변수 `CODEX_CLI_PATH`가 없는 폴더를 가리키면 지우는 편이 낫습니다. 옛 해시의 `codex.exe`를 일부러 가리키게 하면 앱이 오래된 CLI로 돌아가 나중에 스레드 오류가 났다는 보고도 있습니다([#40700](https://github.com/openai/codex/issues/40700)).

```powershell
[Environment]::SetEnvironmentVariable("CODEX_CLI_PATH", $null, "User")
```

그다음 트레이에서 완전히 종료했다가 다시 열고, 같은 Browser Use 작업에서 페이지 이동과 스크린샷이 되는지 확인합니다. 다음 자동 업데이트에서 해시가 또 바뀔 수 있으므로, 업데이트 뒤 같은 오류가 다시 나면 이 비교부터 반복하세요.

### bin 폴더 자체가 없는 경우

2026년 4~5월 빌드(26.4xx)에서는 `%LOCALAPPDATA%\OpenAI\Codex\bin`이 아예 없고 보조 파일이 `%LOCALAPPDATA%\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\OpenAI\Codex\bin`에만 있는 경우가 많았습니다. 여러 사용자가 이 폴더로 연결(junction)을 만들어 해결했지만, 깨끗한 가상 머신에서 시험한 한 사용자는 그 뒤 `CreateProcessAsUserW failed: 5` 샌드박스 오류를 만났습니다([#20661](https://github.com/openai/codex/issues/20661)). 26.506 빌드에서는 bin 폴더가 생긴다는 보고가 있으니 먼저 앱을 최신으로 업데이트하고, 그래도 폴더가 없을 때만 시도하세요.

```powershell
New-Item -ItemType Junction -Path "$env:LOCALAPPDATA\OpenAI\Codex\bin" `
  -Target "$env:LOCALAPPDATA\Packages\OpenAI.Codex_2p2nqsd0c76g0\LocalCache\Local\OpenAI\Codex\bin"
```

복구·초기화, 재설치만 하기, 재부팅, 관리자 권한 실행, npm으로 CLI 설치는 이 오류에 효과가 없었다는 보고가 여럿입니다([#19562](https://github.com/openai/codex/issues/19562), [#20048](https://github.com/openai/codex/issues/20048)).

## `missing required path nodePath`: 확장의 경로 장부

ChatGPT 브라우저 확장의 사이드 패널에 "Unable to start ChatGPT"와 함께 `Codex app-server manifest entry is missing required path nodePath`가 뜨는 경우입니다. `resourcesPath`나 `codexCliPath`로 끝나기도 하고, Chrome뿐 아니라 Edge와 Brave에서도 보고됐습니다. 대표 이슈는 [#35705](https://github.com/openai/codex/issues/35705)이고 [#32706](https://github.com/openai/codex/issues/32706), [#40357](https://github.com/openai/codex/issues/40357), [#42520](https://github.com/openai/codex/issues/42520)이 모두 열려 있습니다.

"missing"은 항목이 비어 있다는 뜻이 아니라, 적혀 있는 경로가 더 이상 존재하지 않는다는 뜻입니다. 확장은 네이티브 메시징 호스트 `com.openai.codexextension`을 통해 `extension-host.exe`를 띄우고, 이 프로그램이 `chrome-native-hosts-v2.json`에서 `nodePath`, `resourcesPath` 같은 경로를 읽습니다. 데스크톱 앱 업데이트가 옛 `cua_node\<해시>` 런타임과 옛 패키지 폴더를 지우면서 이 장부는 고치지 않아 오류가 납니다. 2026년 10월 3일과 10월 8일 업데이트 뒤에도 다시 깨졌다는 보고가 올라왔습니다.

가벼운 조치부터 순서대로 해 보세요.

1. **공식 점검 목록대로 확인합니다.** [ChatGPT 브라우저 확장 문서](https://learn.chatgpt.com/docs/chrome-extension)의 순서는 데스크톱 앱 업데이트(ChatGPT나 Codex 데스크톱 앱이 여러 개 깔려 있으면 모두 업데이트하거나 안 쓰는 것을 제거), 브라우저 재시작, 앱의 Settings → Computer Use에서 브라우저가 Install이 아니라 Manage로 보이는지 확인, 확장을 설치한 브라우저 프로필 사용, 새 채팅 시작, 데스크톱 앱 재시작, Settings → Computer Use에서 확장 재설치입니다. 이 문서에는 nodePath 오류가 직접 나오지 않지만, 여러 앱이 섞여 있는 상태를 먼저 걸러 줍니다.
2. **데스크톱 앱을 먼저 켜고 30~60초 기다립니다.** 확장은 데스크톱 앱이 실행 중일 때만 동작한다는 보고가 있고, 앱을 먼저 띄워 두었더니 해결됐다는 사용자가 한두 명 있습니다([#35705](https://github.com/openai/codex/issues/35705)). 데스크톱 앱 안에서 Codex에게 Chrome에 연결해 달라고 요청해 상태가 다시 만들어졌다는 사례도 하나 있습니다([#32706](https://github.com/openai/codex/issues/32706)).
3. **장부의 경로를 직접 고칩니다.** 아래 확인 명령으로 어느 경로가 없는지 먼저 봅니다.

```powershell
$f = "$env:LOCALAPPDATA\OpenAI\Codex\chrome-native-hosts-v2.json"
Copy-Item $f "$f.bak"
$j = Get-Content $f -Raw | ConvertFrom-Json
foreach ($e in $j.entries) {
  foreach ($p in $e.paths.PSObject.Properties) {
    foreach ($v in @($p.Value)) {
      [pscustomobject]@{ Key = $p.Name; Exists = (Test-Path -LiteralPath $v); Path = $v }
    }
  }
}
```

`Exists`가 `False`인 항목을 지금 있는 경로로 바꿉니다. 여러 보고자가 쓴 값은 다음과 같습니다.

- `nodePath`: `%LOCALAPPDATA%\OpenAI\Codex\runtimes\cua_node\<최신 해시>\bin\node.exe`
- `nodeModuleDirs`: 같은 폴더의 `bin\node_modules`
- `resourcesPath`: `(Get-AppxPackage -Name OpenAI.Codex).InstallLocation` 결과 뒤에 `\app\resources`

저장한 뒤 Codex와 Chrome을 모두 닫고, **Codex를 먼저** 켠 다음 Chrome을 켭니다. 사이드 패널에 대화 화면이 뜨면 해결된 것입니다.

같은 작업을 하는 PowerShell 스크립트를 한 사용자가 공개했습니다([CherryDT의 Repair-CodexChromeManifest.ps1](https://gist.github.com/CherryDT/1f6f1633adf1eed20d55a1ee72388410)). 설치된 `OpenAI.Codex` 패키지와 가장 최근의 완전한 `cua_node` 런타임을 찾아 JSON을 백업한 뒤 경로를 바꾸고, `-WhatIf`로 바뀔 내용만 미리 볼 수 있습니다. 이슈에서 효과를 확인한 사람은 한 명이고 OpenAI가 만든 도구가 아니므로, 내용을 읽어 본 뒤 `-WhatIf`로 먼저 실행하세요.

플러그인 캐시를 패키지에서 다시 복사하고 `latest` 연결과 두 JSON 파일을 새로 만드는 전체 재구성은 26.930.2377.0에서 여러 사용자가 성공했지만([#42520](https://github.com/openai/codex/issues/42520)), 단계가 많아 위 방법이 모두 실패했을 때만 고려할 만합니다.

## `initialize handshake timed out`: 30초 안에 시작이 끝나지 않을 때

시작하자마자 "ChatGPT failed to start" 대화상자에 `Codex app-server initialize handshake timed out`이 나오고, 버튼은 Check for Updates와 Quit뿐인 경우입니다. 로그에는 `durationMs=30012`, `cause=initialize_handshake_timeout`이 남습니다. 데스크톱 앱은 app-server의 핸드셰이크(initialize handshake)를 30초까지만 기다리고, 그 안에 준비가 끝나지 않으면 프로세스를 끊습니다([#39015](https://github.com/openai/codex/issues/39015)). 이 30초는 로그에서 관찰된 값이고 공식 문서에는 없습니다.

이름이 비슷한 `timed out waiting for cloud config bundle after 15s`는 조직 구성 번들을 받지 못한 다른 오류입니다. 그쪽은 [Codex cloud config bundle이 15초 후 시간 초과될 때 진단 순서](/ko/posts/codex-timeout)를 보세요.

아래 순서는 데이터를 덜 건드리는 것부터입니다.

![손상된 logs_2.sqlite는 30초 기한을 넘겨 끊기고 세 파일을 옮긴 뒤에는 1.7초에 열리는 막대와, 남은 프로세스 종료, 로그 DB 옮기기, WSL이면 40초 대기, 세션 기록 옮기기 4단계와 각 단계의 데이터 영향](https://www.aifreeapi.com/posts/ko/codex-app-server-failed-to-start/img/handshake-timeout-order.webp)

1. **남은 프로세스 정리하기.** 상태 DB를 이전 프로세스가 붙잡고 있어 시작이 막힌 사례가 있습니다([#32160](https://github.com/openai/codex/issues/32160), 한 사용자가 10번 넘게 겪음). 다음 명령 뒤 다시 실행합니다.

```powershell
Get-Process *codex*, *chatgpt*, *node_repl* -ErrorAction SilentlyContinue | Stop-Process -Force
```

2. **`logs_2.sqlite` 세 파일을 함께 옮기기.** 가장 많이 확인된 원인입니다. 6.7GB까지 커진 사례와 2.27GB 파일이 손상된 사례가 있었고, 손상된 파일을 옮기자 창이 1.7초 만에 열렸습니다([#39015](https://github.com/openai/codex/issues/39015), [#27741](https://github.com/openai/codex/issues/27741)). 이 파일은 로그용이라 대화와 설정이 들어 있지 않으며, 옮기면 새 로그 DB가 만들어집니다. 트레이에서 완전히 종료하고 VS Code 등 IDE의 Codex 확장도 닫은 뒤 실행하세요.

```powershell
$c = "$env:USERPROFILE\.codex"
Get-ChildItem "$c\logs_2.sqlite*" | Select-Object Name, @{ N = "MB"; E = { [math]::Round($_.Length / 1MB) } }
$hold = "$c\logs-hold-$(Get-Date -Format yyyyMMdd-HHmmss)"
New-Item -ItemType Directory -Path $hold | Out-Null
Move-Item "$c\logs_2.sqlite*" $hold
```

`-wal`, `-shm` 파일까지 한꺼번에 옮겨야 합니다. 이 단계에서 `state_5.sqlite`는 옮기지 마세요. 스레드 색인이라 옮기면 대화 목록이 보이지 않게 됩니다. OpenAI 직원은 새 빌드가 손상을 감지하며 DB 자동 복구를 작업 중이라고 답했지만 수정 버전은 밝히지 않았습니다([#23917](https://github.com/openai/codex/issues/23917)).

3. **에이전트를 WSL에서 돌리고 있다면.** WSL 모드에서는 `/mnt/c`를 거치는 상태 백필이 30초를 넘겨 실패한 사례가 있습니다([#38345](https://github.com/openai/codex/issues/38345)). 한 사용자는 `config.toml`에 아래 설정을 넣어 Windows 네이티브 모드로 돌아갔고, 다른 사용자는 백필이 끝나도록 40초쯤 더 기다렸다가 다시 실행해 해결했습니다. 네이티브로 바꾸면 WSL에서 만든 채팅에 접근할 수 없게 된다는 보고가 있으니([#39169](https://github.com/openai/codex/issues/39169)), 기다려 보는 쪽을 먼저 시도하세요.

```toml
[desktop]
runCodexInWindowsSubsystemForLinux = false
```

4. **세션 기록이 거대한 경우.** Reddit의 한 사용자는 세션 파일 64개가 22.24GB였고, `logs_2.sqlite`를 옮겨도 소용이 없었습니다([r/codex 글](https://www.reddit.com/r/codex/comments/1vor50y/)). 전체 백업을 끝낸 뒤 `sessions`, `archived_sessions`, `state_5.sqlite*`를 지우지 않고 다른 드라이브로 옮기자 앱이 열렸습니다. 옮긴 동안 예전 대화는 앱에 보이지 않으므로 마지막에 시도할 방법입니다. 같은 글의 댓글 두 개는 진짜 원인이 WSL 설정이었다고 했습니다.

```powershell
Get-ChildItem "$env:USERPROFILE\.codex\sessions" -Recurse -File -ErrorAction SilentlyContinue |
  Measure-Object Length -Sum |
  Select-Object Count, @{ N = "GB"; E = { [math]::Round($_.Sum / 1GB, 2) } }
```

이 밖에 프록시 노드를 바꾸자 풀렸다는 사례가 한 건 있습니다([#29040](https://github.com/openai/codex/issues/29040)).

## 0xC000001D (code=3221225501): 이벤트 뷰어로 Astrill부터 확인

`ChatGPT failed to start. (code=3221225501, signal=null). Most recent error: Codex app-server websocket closed (code=3221225501)`처럼 나오거나, 이어서 `Codex app-server process is not available`이 뜨는 경우입니다. 3221225501은 16진수로 0xC000001D, 즉 STATUS_ILLEGAL_INSTRUCTION입니다. `codex.exe`가 실행할 수 없는 CPU 명령을 만났다는 뜻이고, 그 명령이 Codex 자신의 것인지 다른 프로그램이 끼워 넣은 DLL의 것인지에 따라 대처가 갈립니다. [#24408](https://github.com/openai/codex/issues/24408), [#30884](https://github.com/openai/codex/issues/30884) 등 여러 이슈가 열려 있지만 데스크톱 쪽에는 OpenAI 직원의 답이 없습니다.

### 충돌 모듈 이름 확인하기

이벤트 뷰어 → Windows 로그 → 응용 프로그램에서 원본이 Application Error인 항목을 열고, 충돌한 모듈 이름(Faulting module name)을 봅니다. PowerShell로도 볼 수 있습니다.

```powershell
Get-WinEvent -FilterHashtable @{ LogName = "Application"; ProviderName = "Application Error" } -MaxEvents 30 |
  Where-Object Message -match "codex" |
  Select-Object -First 3 TimeCreated, Message | Format-List

tasklist /m ASProxy64.dll
```

모듈이 `ASProxy64.dll`이면 Astrill VPN이 설치한 Winsock LSP가 `codex.exe` 안에 들어가 충돌을 일으킨 것입니다. 지금까지 데스크톱 앱에서 가장 많이 확인된 원인이고, Zen 5, Core Ultra, i7-14700KF처럼 최신 CPU에서도 일어났습니다([#30884](https://github.com/openai/codex/issues/30884), [#24408](https://github.com/openai/codex/issues/24408), [#45597](https://github.com/openai/codex/issues/45597)).

### ASProxy64.dll이면: Astrill LSP 제거

여러 사용자가 확인한 방법은 셋입니다.

- Astrill 앱에서 **Ctrl 키를 누른 채** Help 메뉴를 열면 숨은 항목 LSP Uninstall이 나옵니다. 실행 후 재부팅하고, `tasklist /m ASProxy64.dll`에 해당 작업이 없다고 나오면 됩니다.
- 관리자 터미널에서 `netsh winsock show catalog | findstr ASProxy`로 LSP를 확인한 뒤 `netsh winsock reset`을 실행하고 재부팅합니다. 이 명령은 Astrill뿐 아니라 등록된 모든 LSP를 초기화합니다.
- Astrill을 제거합니다.

LSP를 지운 뒤에도 Astrill을 계속 쓴다면 LSP를 설치하지 않는 OpenWeb·WireGuard 프로토콜을 쓰면 된다는 보고가 있습니다. 비슷하게 네트워크 통신에 끼어드는 다른 프로그램도 원인이 될 수 있다고 추정되지만, 이슈에서 확인된 것은 Astrill뿐입니다.

### 다른 모듈이거나 codex.exe 자체라면: CPU 명령 문제

충돌 모듈이 `codex.exe` 자신이면 빌드가 요구하는 CPU 명령을 이 CPU가 지원하지 않는 경우일 수 있습니다. 근거는 다른 제품에서 나왔습니다. npm CLI 0.135.0이 Haswell Xeon에서 같은 코드로 죽었을 때 OpenAI 직원은 다음 릴리스에서 고친다고 답했고([#25367](https://github.com/openai/codex/issues/25367)), VS Code 확장의 `codex.exe`는 Zen 3와 Raptor Lake에서 `HW capability requested: 0x200000`을 남기며 죽었습니다([#17410](https://github.com/openai/codex/issues/17410)). 지금의 데스크톱 빌드가 어떤 CPU 명령을 요구하는지는 공개 문서에 없습니다.

이 경우는 로컬 설정으로 고칠 수 없습니다. 재설치, 패키지 재등록, Visual C++ 재배포 패키지 설치, SQLite DB 삭제, `.codex` 새로 만들기는 모두 효과가 없었습니다([#30339](https://github.com/openai/codex/issues/30339), [#42029](https://github.com/openai/codex/issues/42029)). [#17410](https://github.com/openai/codex/issues/17410)의 보고자들은 WSL2에서 Linux용 Codex CLI를 쓰면 동작한다고 했으니, 수정이 나올 때까지는 그쪽으로 작업을 이어 가고 CPU 모델명을 붙여 신고하세요.

가까운 사례로, 종료 코드 0xC0000409와 함께 `HW capability requested: 0x20000000`이 나오면 전역 환경 변수 `OPENSSL_ia32cap`이 남아 있는지 확인하세요. 한 사용자는 이 변수를 지워 CLI와 VS Code 확장이 다시 동작했습니다([#12962](https://github.com/openai/codex/issues/12962)).

## 비슷한 오류 문구와 무한 로딩

네 갈래와 문구가 비슷하지만 조치가 다른 경우입니다. 대부분 사용자 보고에 기댄 우회책이고, 날짜와 빌드 번호는 보고 당시 기준입니다.

| 문구 또는 증상 | 뜻 | 먼저 할 일 |
| --- | --- | --- |
| `failed to launch codex app-server: program not found` | 26.930.61225에서 Cloud 채팅으로 Windows Computer Use를 쓸 때 보고됨(2026년 10월 7일, 1건). 같은 작업이 "On my computer" 채팅에서는 동작 | 로컬 채팅으로 같은 작업을 시도. 원인은 밝혀지지 않음([#51867](https://github.com/openai/codex/issues/51867)) |
| `Codex app-server process is not available`, "ChatGPT hit a snag" | 뒤에서 돌던 `codex.exe`가 죽었고 앱이 다시 띄우지 못함 | 이벤트 뷰어에서 종료 코드 확인. 0xC000001D면 위 절, 0xc0000409는 메모리 고갈 사례([#36619](https://github.com/openai/codex/issues/36619)), 0xC0000017은 32KB를 넘긴 사용자 PATH 사례([#46374](https://github.com/openai/codex/issues/46374), `HKCU\Environment` 백업 후 정리) |
| `code=3221225506` (0xC0000022) | 26.820~26.825 빌드에서 `SafeDllSearchMode`가 0이면 접근 거부 | `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\SafeDllSearchMode`가 0이면 관리자 권한으로 Windows 기본값 1로 되돌림([#40913](https://github.com/openai/codex/issues/40913)) |
| `Unable to locate the Codex CLI binary. Set CODEX_CLI_PATH or ensure the Electron resources include bin/codex.` | 패키지에서 실행 파일을 복사하지 못함(2026년 8월 빌드) | 최신 빌드로 업데이트. C가 아닌 드라이브에 설치했다면 설정 → 앱 → 설치된 앱 → ChatGPT → 이동으로 C:에 옮김([#40700](https://github.com/openai/codex/issues/40700)) |
| 오류 없이 로고에서 멈춤(무한 로딩), 26.924~26.928 | app-server가 멈춘 상태 | `app-server`가 들어간 `codex.exe`만 종료(아래 명령). 26.930.x에서 고쳐졌다는 보고가 여럿 |
| 26.1002.7124.0에서 로그인 후 10~35초 뒤 조용히 꺼짐 | 백그라운드 런타임 패키지 설치 중 충돌(2026년 10월 7일부터) | 비공식 우회책이 [커뮤니티](https://community.openai.com/t/1404464)에 있음. 다음 빌드에서 바뀔 가능성이 큼 |
| `failed to reload config: ... missing escaped value` | `config.toml`의 큰따옴표 안 Windows 경로 | 작은따옴표나 `/`로 바꾸기([#37616](https://github.com/openai/codex/issues/37616)) |

로고에서 멈췄을 때는 창을 연 채로 다음 명령을 실행합니다. `exec-server`가 들어간 `codex.exe`를 끄는 것은 도움이 되지 않고, `codex.exe`를 모두 끄면 다른 세션까지 끊깁니다. 한 사용자는 종료 뒤 약 9초 만에 홈 화면이 떴습니다([Qiita 글](https://qiita.com/tasuku/items/de12d183926d75bc5a73), [#48333](https://github.com/openai/codex/issues/48333)).

```powershell
Get-CimInstance Win32_Process |
  Where-Object { $_.Name -eq "codex.exe" -and $_.CommandLine -like "* app-server *" } |
  ForEach-Object { Stop-Process -Id $_.ProcessId -Force }
```

`CreateProcessWithLogonW failed: 1385`이나 오류 1312 같은 샌드박스 오류는 app-server가 아니라 샌드박스 설정 문제입니다. 샌드박스와 승인 설정은 [Codex 샌드박스와 config.toml: 승인·쓰기·네트워크 경계](/ko/posts/codex-config-toml)에 정리돼 있습니다. 앱은 열리는데 세션 중에 재연결이 반복되면 [Codex가 Reconnecting을 반복할 때 작업을 잃지 않는 해결 순서](/ko/posts/codex-stuck-reconnecting-fix)를, 로그인 단계에서 막히면 [Codex Token Exchange Failed: 로그인 실패 단계를 먼저 찾으세요](/ko/posts/codex-access-token-could-not-be-refreshed)를 보세요.

## 이슈 댓글의 패치 파일과 복구 도구는 받지 마세요

이 오류들을 다루는 GitHub 이슈에는 OpenAI와 무관한 파일이 올라와 있습니다.

- 새로 만든 계정이 0xC000001D 이슈에 올린 `codex_patch_v26.zip`은 다른 사용자가 랜섬웨어라고 지적했습니다.
- `browser-client.mjs`를 고치는 PowerShell 패치는 인증이 실패해도 사이트 허용 여부 검사를 통과시키는 방식이라, 웹사이트 허용·차단 정책을 우회합니다.
- 여러 이슈에 반복해서 홍보되는 "WinBridge Recovery"는 비공식 도구입니다.

OpenAI 지원팀도 Windows 보안 기능을 끄는 방식의 우회는 피하라고 답했습니다([커뮤니티](https://community.openai.com/t/1388281)). 실행 파일을 바꾸거나 보안 기능을 끄지 않아도, 위 네 갈래는 경로 수정, 파일 이동, LSP 제거로 해결된 사례가 있습니다.

## 그래도 안 열리면: 신고 전에 모을 정보

0xC000001D의 CPU 명령 문제처럼 로컬에서 고칠 수 없는 경우나, 위 조치를 다 해도 같은 문구가 나오면 다음 정보를 모아 신고합니다.

- 앱 버전: `Get-AppxPackage -Name OpenAI.Codex | Select-Object Name, Version`
- Windows 빌드: `winver` 또는 `[Environment]::OSVersion.Version`
- 오류 문구 원문과 종료 코드, 이벤트 뷰어의 Application Error 항목(충돌 모듈 이름 포함)
- 해당 시각의 `codex-desktop-*.log`
- 0xC000001D라면 CPU 모델명, Browser Use·확장 문제라면 브라우저 종류와 프로필

Browser Use나 확장 문제는 [공식 문서](https://learn.chatgpt.com/docs/chrome-extension)대로 앱에서 `/feedback`을 보내고 채팅 ID를 함께 알려 줍니다. OpenAI 지원팀은 포럼에서 로그를 support@openai.com으로 보내 달라고 했는데, 로그에 개인 정보나 환경 정보가 들어 있을 수 있기 때문입니다([커뮤니티 답변](https://community.openai.com/t/1379497)). 같은 이유로 GitHub 이슈에는 로그 전체를 올리지 말고, 대표 이슈(os error 3은 [#19187](https://github.com/openai/codex/issues/19187), nodePath는 [#35705](https://github.com/openai/codex/issues/35705), 핸드셰이크는 [#39015](https://github.com/openai/codex/issues/39015), 0xC000001D는 [#24408](https://github.com/openai/codex/issues/24408))에 버전과 증상만 덧붙이는 편이 안전합니다.

## 자주 묻는 질문

### Codex 앱을 다시 설치하면 app-server 오류가 고쳐지나요?

재설치만으로 고쳐졌다는 보고는 네 갈래 어디에서도 나오지 않았습니다. 문제의 경로가 기록된 `config.toml`과 로그 DB는 패키지 밖의 `%USERPROFILE%\.codex`에 있어서 재설치해도 그대로 남기 때문입니다. 재설치가 필요하면 Store 제품 ID `9PLM9XGG6VKS`로 설치해 ChatGPT Classic과 헷갈리지 않게 하세요.

### .codex 폴더를 지우면 된다는 글이 있는데 해도 되나요?

백업 없이 지우면 대화 기록, 스레드 색인, 설정, 로그인 정보가 함께 사라집니다. 핸드셰이크 시간 초과라면 `logs_2.sqlite*`만 옮기는 것으로 충분한 경우가 많고, 0xC000001D는 폴더를 새로 만들어도 고쳐지지 않았습니다. 꼭 비워 봐야 한다면 폴더를 통째로 다른 이름으로 바꾸거나 옮겨 두세요.

### OpenAI가 이 오류들을 언제 고치나요?

2026년 10월 9일 기준 os error 3, nodePath·resourcesPath, 핸드셰이크 시간 초과, 데스크톱 0xC000001D 어느 것도 수정 버전이 발표되지 않았습니다. 변경 기록에도 이 오류 문구는 나오지 않습니다. 업데이트 뒤 증상이 바뀌거나 다시 생기는 일이 잦으므로, 업데이트할 때마다 위의 경로 비교부터 다시 해 보세요.
