# Codex 맥 앱 업데이트 오류 HTTP 520: 서버 수정 완료와 지금 할 일

> Mac용 ChatGPT(Codex) 앱의 업데이트 확인 오류는 appcast 주소의 HTTP 520 서버 장애였고, 한국 시간 10월 22일 새벽 수정됐습니다. 앱을 완전히 종료한 뒤 다시 확인하세요.

- Source: https://www.aifreeapi.com/ko/posts/codex-update-check-failed
- Language: ko
- Published: 2026-10-22
- Updated: 2026-10-22
- Publisher: AI Free API (https://www.aifreeapi.com)

Mac에서 ChatGPT 데스크톱 앱(많은 사람이 아직 'Codex 앱'이라고 부르는 그 앱)의 **ChatGPT → Check for Updates**를 눌렀을 때 `Update Error!`와 `An error occurred in retrieving update information. Please try again later.`가 떴다면, 2026년 10월 13일부터 21일 사이에는 사용자 Mac이나 네트워크가 아니라 OpenAI 업데이트 서버 쪽 장애였을 가능성이 큽니다. 앱이 새 버전 정보를 받아 오는 업데이트 정보 주소(appcast) `https://updates.oaistatic.com/codex/app/appcast`가 Cloudflare 오류 HTTP 520을 돌려줬고, OpenAI 직원이 2026년 10월 21일 17:29(UTC), 한국 시간으로 10월 22일 오전 2시 29분에 GitHub 이슈 [#53891](https://github.com/openai/codex/issues/53891)을 "This is fixed!"라는 말과 함께 닫았습니다.

수정은 서버 쪽에서 이뤄졌습니다. 새 앱 빌드가 업데이트 목록에 올라오기 전에 이미 "고쳐졌다"는 사용자 확인이 나왔으므로, 이 문제 때문에 앱을 다시 설치할 필요는 없습니다. 지금 할 일은 앱을 완전히 종료(⌘Q)했다가 다시 열고 업데이트 확인을 한 번 더 누르는 것입니다. 한국 시간 2026년 10월 22일 오전 10시 45분 기준으로 이슈가 닫힌 뒤 새 실패 보고는 올라오지 않았습니다. 그래도 실패한다면 아래 표에서 이번 장애인지, 다른 업데이트 문제인지부터 구분하세요.

## Mac 앱 업데이트 오류 증상별 원인: 520 장애·조직 관리·서명·macOS 버전

| 보이는 증상 | 원인 | 할 일 |
| --- | --- | --- |
| `Update Error!` 대화상자. 앱 로그에 `SUSparkleErrorDomain Code=2001`과 `server error (520)` | 업데이트 서버 장애(2026-10-13~10-21). 서버 쪽에서 수정됨 | 앱을 완전히 종료한 뒤 다시 업데이트 확인 |
| 설정(Settings) → 일반(General)에 `In-app updates: Managed`, `Your organization has turned off in-app updates.` | 회사(Business·Enterprise) 워크스페이스 관리자가 앱 내 업데이트를 끈 정책 | IT 관리자가 배포하는 버전을 쓰거나 관리자에게 문의 |
| 업데이트를 받은 뒤 설치 단계에서 `App update is improperly signed and could not be validated` | 업데이트 파일 서명 검증 실패. 이번 장애와 별개인 이슈 [#28369](https://github.com/openai/codex/issues/28369) | 해당 이슈 진행 상황 확인, 최신 버전이 급하면 공식 설치 파일 사용 |
| Mac의 macOS가 오래돼 새 버전이 설치되지 않음 | 새 버전의 최소 macOS 요구 미달([#38022](https://github.com/openai/codex/issues/38022)). 2026년 10월 22일 기준 최소 요구는 macOS 13.0 | macOS 업그레이드 |
| 약 684MB 업데이트 파일 다운로드가 끊길 때마다 처음부터 다시 시작 | 불안정한 네트워크에서 이어받기가 되지 않는 문제([#51903](https://github.com/openai/codex/issues/51903)) | 안정적인 네트워크에서 다시 시도하거나 공식 설치 파일 사용 |
| Windows 앱에서 업데이트 실패 | 업데이트 경로가 다름(Microsoft Store, Intune 같은 배포 도구). 520 보고는 모두 macOS | Windows 쪽 배포 경로 확인 |

첫 줄만 이번 장애입니다. 나머지는 증상과 해결 방법이 달라서, 520 장애가 끝났다고 함께 풀리지 않습니다. Windows에서 앱이 아예 켜지지 않거나 app-server 오류가 뜨는 경우는 업데이트와 무관한 문제이므로 [failed to start codex app-server 해결: Windows 앱·CLI 오류 문구별 조치](/ko/posts/codex-app-server-failed-to-start)를 참고하세요.

## `Update Error!` 대화상자와 로그의 2001·520이 뜻하는 것

대화상자에 보이는 문구는 두 줄뿐입니다.

```text
Update Error!
An error occurred in retrieving update information. Please try again later.
```

앱이 쓰는 업데이트 도구 Sparkle에는 이 문구의 한국어 번역('업데이트 오류!', '업데이트 정보를 수집하는 중 오류가 발생하였습니다. 나중에 다시 시도해 주십시오.')이 들어 있습니다. 다만 ChatGPT 앱의 업데이트 정보에 적힌 Sparkle 언어 목록은 de, ar, el, ja, fa, uk, zh_CN뿐이라, 한국어로 설정한 Mac에서도 영어 문구가 뜰 가능성이 높습니다. 기기에서 직접 확인된 사실은 아니므로, 둘 중 어느 문구가 보여도 같은 오류로 보면 됩니다.

대화상자에는 520이라는 숫자가 나오지 않습니다. 520은 앱의 기록(로그)에만 남고, GitHub 보고자들이 확인한 기록은 다음과 같은 형태였습니다.

```text
SUSparkleErrorDomain Code=2001
A network error occurred while downloading
https://updates.oaistatic.com/codex/app/appcast
server error (520)
```

이 로그가 Mac의 어느 경로에 저장되는지는 OpenAI 공개 문서에 나와 있지 않습니다. 로그를 찾지 못해도 대화상자 문구와 발생 시기만으로 판단에는 충분합니다.

두 숫자는 이렇게 읽습니다.

- **Code=2001**: Sparkle 소스의 [`SUErrors.h`](https://github.com/sparkle-project/Sparkle/blob/2.x/Sparkle/SUErrors.h)에서 `SUDownloadError`, 즉 업데이트 정보를 가져오는 통신 자체가 실패했다는 뜻입니다. 정보를 받기는 했지만 내용을 해석하지 못한 경우는 `SUAppcastError`(1002)로 따로 구분됩니다.
- **HTTP 520**: Cloudflare 문서에 따르면 [원 서버가 빈 응답, 알 수 없는 응답, 예상 밖의 응답을 돌려줄 때](https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-520/) 나오는 오류이고, 해결 방법은 모두 사이트 운영자 쪽에 있습니다.

둘을 합치면 "업데이트 목록을 요청했는데 OpenAI 서버가 제대로 답하지 못했다"는 뜻이 됩니다. 업데이트 파일을 내려받기도 전에 실패한 것이므로, Mac 설정이나 앱 파일을 손볼 단계가 아닙니다.

이름도 한 번 정리해 둡니다. 2026년 7월 9일(앱 26.707)부터 Codex 앱은 macOS와 Windows용 ChatGPT 데스크톱 앱의 일부가 됐습니다. Mac에서 앱 이름은 ChatGPT.app이지만 번들 ID는 여전히 `com.openai.codex`입니다. 그래서 'Codex 업데이트 오류'와 'ChatGPT 맥 앱 업데이트 오류'는 같은 증상을 가리킵니다.

## HTTP 520 장애 경과: 10월 13일 발생, 10월 22일 새벽 수정

| 시각(UTC / 한국 시간) | 일어난 일 |
| --- | --- |
| 10-13 밤(보고자 현지 시간) | 업데이트 확인 실패를 처음 알아챘다는 보고 |
| 10-14 06:42 / 10-14 15:42 | GitHub 이슈 #53891 `[macOS] Update checks fail because appcast endpoint returns HTTP 520` 등록. 이후 #54144, #54296, #54364, #54392가 중복으로 합쳐짐 |
| 10-14~10-21 | 26.1007.30912부터 26.1016.51333까지 여러 버전, macOS 15.2·26.5.2·26.7.1·27.0·27.0.1의 Apple Silicon Mac에서 같은 실패 보고 |
| 10-18 | 이슈 [#55084](https://github.com/openai/codex/issues/55084): 한 사용자 환경에서 IPv6 경로는 520, IPv4 경로는 200. 다른 사용자는 10-19, 10-21에 IPv4로도 실패 |
| 10-21 16:04 / 10-22 01:04 | OpenAI 직원 "원인을 찾았고 곧 수정하겠다" |
| 10-21 17:22 / 10-22 02:22 | 보고자 "fixed for me" |
| 10-21 17:29 / 10-22 02:29 | "This is fixed!"와 함께 #53891 종료 |
| 10-22 01:16 / 10-22 10:16 | 다음 앱 버전 26.1016.61520이 업데이트 목록에 등록 |
| 10-22 01:45 / 10-22 10:45 | 종료 이후 새 실패 보고 없음 |

장애 기간에 많이 시도된 조치는 대부분 효과가 없었습니다. Mac 재시동과 DNS 캐시 비우기로는 고쳐지지 않았고, 공식 설치 파일로 새 버전을 덮어 설치한 사람들도 앱 버전은 올라갔지만 업데이트 확인은 계속 실패했습니다. 한 사용자(10월 16일)는 앱 내부를 분석해, 브라우저로 열리는 정적 업데이트 목록은 정상(200)인데 앱이 실제로 쓰는 동적 주소만 520을 돌려주고, 정식 빌드에는 정적 목록으로 넘어가는 대체 경로가 없어서 재설치가 소용없었다고 설명했습니다. OpenAI가 확인한 내용은 아닙니다.

VPN을 켜고 한 번 확인했더니 그 뒤로는 VPN 없이도 된다는 보고가 있었지만, 같은 사람이 미국 뉴욕 출구에서는 성공하고 캐나다 출구에서는 실패했고, 휴대폰 핫스폿으로 바꿔도 안 된 사람이 있었습니다. 네트워크 경로에 따라 결과가 달랐다는 정황일 뿐 해결책은 아니었고, 서버가 수정된 지금은 필요하지 않습니다.

아직 알려지지 않은 것도 있습니다. OpenAI는 근본 원인을 공개하지 않았고, 영향을 받은 모든 Mac이 아무 조치 없이 회복됐는지, 수정 뒤 Mac을 재시동해야 하는지도 밝혀지지 않았습니다. 그래서 아래 순서는 가장 가벼운 조치부터 시작합니다.

## 수정 이후에도 Codex 앱 업데이트 확인이 실패할 때 할 일

![1번 완전 종료 후 다시 확인에서 성공하면 해결, 실패하면 2번 In-app updates: Managed 확인, 3번 ChatGPT.dmg 설치, 4번 새 이슈 보고로 이어지는 흐름과 하지 말 것 목록](https://www.aifreeapi.com/posts/ko/codex-update-check-failed/img/update-check-steps.webp)

### 1. ChatGPT 앱을 완전히 종료한 뒤 다시 확인하기

OpenAI의 [Manage app updates](https://learn.chatgpt.com/codex/enterprise/manage-app-updates) 문서는 앱 창을 닫는 것만으로는 앱이 다시 시작되지 않을 수 있다고 안내합니다. 메뉴 막대에서 ChatGPT → Quit ChatGPT를 고르거나 ⌘Q를 눌러 완전히 종료하고, Dock의 ChatGPT 아이콘 아래 점이 사라졌는지 확인한 뒤 다시 엽니다. 그다음 ChatGPT → Check for Updates를 누릅니다.

`You’re up to date!` 같은 최신 버전 안내가 뜨거나 새 버전 설치 창이 나오면 해결된 것입니다.

### 2. 설정 → 일반에서 `In-app updates: Managed` 확인하기

회사의 Business·Enterprise 워크스페이스 계정으로 로그인해 있다면 설정(Settings) → 일반(General)을 열어 보세요. `In-app updates: Managed`와 `Your organization has turned off in-app updates.`가 보이면 관리자가 앱 자체 업데이트를 끈 상태입니다. 이때도 Check for Updates 메뉴는 그대로 보일 수 있어서, 메뉴가 있다는 이유로 업데이트가 허용됐다고 판단하면 안 됩니다. 이 경우 새 버전은 IT 관리자가 MDM 같은 배포 도구로 설치하므로, 관리자에게 문의하는 것이 맞는 경로입니다.

### 3. 공식 설치 파일 ChatGPT.dmg로 덮어 설치하기

지금 당장 최신 버전이 필요하면 업데이터를 거치지 않고 설치할 수 있습니다. OpenAI 문서가 연결하는 macOS 설치 파일은 `https://persistent.oaistatic.com/codex-app-prod/ChatGPT.dmg`입니다. 내려받아 열고 ChatGPT를 응용 프로그램 폴더로 끌어 기존 앱을 교체합니다.

GitHub 댓글에서는 `Codex.dmg` 주소가 많이 돌았는데, 2026년 10월 22일 기준으로 `ChatGPT.dmg`가 한 버전 더 새로웠습니다. 문서에 있는 `ChatGPT.dmg`를 쓰세요. 설치는 앱 버전을 올려 줄 뿐 업데이트 확인 기능을 고치는 조치가 아니라는 점도 기억해 두세요. 장애 기간에는 새로 설치해도 확인이 계속 실패했고, 그 기능은 서버 상태에 달려 있었습니다.

### 4. 완전 종료 후에도 520이 남으면 새 이슈로 보고하기

#53891은 닫혔으므로 같은 증상이 다시 생기면 [openai/codex](https://github.com/openai/codex/issues)에 새 이슈를 열고 #53891을 언급하는 편이 확인이 빠릅니다. 앱 버전과 빌드(ChatGPT → About ChatGPT, 한국어 메뉴라면 ChatGPT에 관하여), macOS 버전, Apple Silicon/Intel, 실패 시각(UTC), 로그의 `Code=2001`·`520` 여부를 적으면 됩니다. 로그에 섞인 `installation_id` 같은 설치 식별자와 계정 정보는 장애 기간의 보고자들처럼 지우고 올리세요.

### 장애 중 설치한 피드 가드 스크립트 제거하기

장애 기간에 #53891 댓글(작성자 tmuller-cloud)에서 공유된 우회책이 있습니다. `~/Library/Application Support/com.openai.codex/production-appcast-bootstrap.json`의 `backendAppcastEnabled`를 `false`로 바꿔 앱이 정상이던 정적 목록을 쓰게 하는 방법인데, 앱이 나중에 이 값을 `true`로 되돌리자 launchd 작업으로 1초마다 다시 `false`로 고쳐 쓰는 '가드' 스크립트까지 나왔습니다. OpenAI가 지원한 방법이 아니며, 서버가 수정된 지금은 설치할 이유가 없습니다.

값만 한 번 바꾼 경우에는 보고대로라면 앱이 이미 `true`로 되돌려 놓았을 가능성이 큽니다. 가드 작업을 설치했다면 남아 있는지부터 확인하세요.

```bash
ls ~/Library/LaunchAgents | grep chatgpt-update-feed-guard
launchctl print "gui/$(id -u)/local.chatgpt-update-feed-guard"
```

둘 다 아무것도 찾지 못하면 가드는 없습니다. 남아 있다면 같은 댓글에 있는 제거 스크립트 `remove_feed_guard.sh`를 실행합니다. 이 스크립트는 `launchctl bootout`으로 작업을 멈추고 plist를 지운 뒤 `backendAppcastEnabled`를 `true`로 되돌립니다. 작업 이름이 다른 이전 버전을 설치했다면 그 설치 방법에 맞는 제거 절차를 따라야 합니다. 제거한 뒤에는 ChatGPT 앱을 완전히 종료했다가 다시 열고 1단계처럼 업데이트를 확인하세요.

### 하지 말아야 할 조치: 검사 끄기·앱 수정·비공식 파일

TLS 인증서 검사나 서명 검사를 끄는 설정, ChatGPT.app 내부 파일 수정, 비공식 미러에서 받은 설치 파일은 진짜 OpenAI 앱인지 확인하는 장치를 스스로 없애는 일입니다. 이번 장애처럼 서버 쪽 문제는 이런 방법으로 고쳐지지도 않습니다.

## 업데이터 없이 최신 버전인지 확인하기: 정적 appcast.xml과 비교

업데이트 확인이 실패해도 이미 최신 버전일 수 있습니다. OpenAI는 브라우저에서 바로 열리는 정적 업데이트 목록을 따로 두고 있고, 맨 위 항목이 최신 버전입니다.

![앱이 묻는 updates.oaistatic.com/codex/app/appcast는 장애 때 520, 매개변수 없는 curl에는 400을 돌려주고, 브라우저로 여는 persistent.oaistatic.com/codex-app-prod/appcast.xml은 200과 맨 위 최신 버전 26.1016.61520을 보여 주며 About ChatGPT 버전과 비교하라는 그림](https://www.aifreeapi.com/posts/ko/codex-update-check-failed/img/appcast-two-feeds.webp)

| Mac 종류 | 정적 업데이트 목록 | 2026년 10월 22일 기준 최신 |
| --- | --- | --- |
| Apple Silicon(arm64) | `https://persistent.oaistatic.com/codex-app-prod/appcast.xml` | 26.1016.61520(빌드 21421), 최소 macOS 13.0 |
| Intel(x86_64) | `https://persistent.oaistatic.com/codex-app-prod/appcast-x64.xml` | 26.1016.61520 |

버전은 며칠 간격으로 바뀝니다. 10월 16일, 21일, 22일에 연이어 새 버전이 올라왔으므로, 표의 숫자 대신 목록을 직접 열어 맨 위 `<item>`의 `<title>`을 보세요. 그 값을 ChatGPT → About ChatGPT에 표시된 버전과 비교해 같으면 최신이고, 낮으면 위 3단계의 설치 파일로 올리면 됩니다.

터미널로 한 번에 확인할 수도 있습니다. 앱을 응용 프로그램 폴더에 설치했다는 전제입니다.

```bash
# arm64면 Apple Silicon, x86_64면 Intel
uname -m

# 정적 목록의 최신 버전 (Intel은 주소 끝을 appcast-x64.xml로)
curl -s https://persistent.oaistatic.com/codex-app-prod/appcast.xml | grep -m1 shortVersionString

# 설치된 앱의 버전과 빌드 번호
/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' /Applications/ChatGPT.app/Contents/Info.plist
/usr/libexec/PlistBuddy -c 'Print :CFBundleVersion' /Applications/ChatGPT.app/Contents/Info.plist
```

두 번째 명령은 `<sparkle:shortVersionString>26.1016.61520</sparkle:shortVersionString>` 같은 한 줄을 출력합니다. 세 번째 명령의 결과와 숫자가 같으면 업데이트할 것이 없습니다.

## curl로 업데이트 서버를 직접 확인할 때: 520·400·200 읽는 법

업데이트 서버가 지금 응답하는지 직접 보고 싶다면 상태 코드만 확인하면 됩니다.

```bash
curl -s -o /dev/null -w '%{http_code}\n' https://updates.oaistatic.com/codex/app/appcast
```

2026년 10월 22일 기준으로 이 요청은 `400`을 돌려줍니다. 본문을 보면(`-o /dev/null -w …` 대신 `-i`) `installation_id`, `arch`, `app_version`이 빠졌다는 `Field required` 메시지가 나옵니다. 앱이 붙이는 매개변수 없이 요청했기 때문에 거절한 것이고, 서버가 정상적으로 답하고 있다는 뜻입니다.

| 결과 | 의미 |
| --- | --- |
| `520`, 본문 `error code: 520`, `server: cloudflare` | Cloudflare가 원 서버에서 정상 응답을 받지 못함. 장애 기간에는 매개변수 없는 요청에도 520이 돌아왔다는 보고가 있음 |
| `400`과 `Field required` | 서버가 응답 중. 매개변수가 없어서 거절했을 뿐 이번 장애가 아님 |
| 정적 `appcast.xml`에서 `200` | 정적 목록은 정상. 앱이 쓰는 동적 주소의 상태와는 별개 |

이 확인은 내 네트워크에서 보낸 요청 한 번의 결과일 뿐이고, 앱이 보내는 요청과 똑같지는 않습니다. 400이 나왔는데 앱은 계속 실패한다면 1~4단계로 돌아가세요. 확인하려고 앱 로그의 `installation_id`를 그대로 붙여 넣어 요청하거나 공개 게시물에 올릴 필요는 없습니다.

## VPN·재시동·Windows 앱에 관한 질문

### VPN을 켜면 Codex 맥 앱 업데이트 오류가 해결되나요?

지금은 필요 없습니다. 장애 기간에 VPN으로 한 번 확인한 뒤 회복됐다는 보고가 있었지만, 같은 사람도 출구 지역에 따라 성공과 실패가 갈렸고 OpenAI가 권한 방법도 아니었습니다. 서버 수정 이후에는 앱을 완전히 종료한 뒤 다시 확인하는 것이 먼저입니다.

### 서버 수정 후 Mac을 재시동해야 하나요?

필요한지는 밝혀지지 않았습니다. 수정 직후 "fixed for me"라고 확인한 보고에 재시동 이야기는 없었습니다. 앱 완전 종료 후에도 실패할 때 Mac 재시동을 한 번 더 시도해 볼 수는 있지만, 장애 기간에는 재시동으로 고쳐지지 않았다는 점을 함께 고려하세요.

### Windows용 ChatGPT 앱에서도 같은 HTTP 520 오류가 나나요?

이번 520 보고는 모두 macOS에서 나왔습니다. Windows 앱은 Microsoft Store나 Intune 같은 별도 경로로 배포되고 업데이트되므로, Windows에서 업데이트가 안 된다면 다른 원인부터 찾아야 합니다. Windows에 영향이 전혀 없었다고 단정할 근거는 없고, 보고가 없었다는 사실까지만 확인됩니다.
