본문으로 건너뛰기

Codex 플러그인 OAuth state not found: 데스크톱 대신 웹에서 연결하기

재설치보다 연결을 시작하는 곳을 바꾸세요. OpenAI Developers는 웹의 OpenAI Platform 행에서, 직접 만든 MCP 서버는 codex mcp login으로 연결한 사례가 있습니다. 2026년 10월 22일 기준 공식 수정은 없습니다.

••9 분 분량•OpenAI Codex
Codex 플러그인 연결이 데스크톱 경로에서는 404 OAuth state not found로 끊기고 웹 경로에서는 연결됨으로 이어지는 두 갈래 그림

ChatGPT 데스크톱 앱(GitHub 이슈에서는 Codex 앱이라고도 부릅니다)에서 플러그인을 설치하거나 Connect를 누르고 브라우저 승인까지 마쳤는데, 앱으로 돌아오자마자 OAuth state not found가 뜬다면 계정이나 브라우저, 연결 대상 서비스를 고칠 문제가 아닙니다. 승인 결과를 OpenAI 서버가 받아 처리하는 콜백 단계에서 404가 나는 버그이고, 2026년 10월 22일 기준 GitHub에 같은 증상의 이슈가 6개 열려 있지만 OpenAI의 답변이나 수정 배포는 없습니다.

재로그인과 재설치를 반복하기보다 연결을 시작하는 곳을 바꾸는 편이 낫습니다. 같은 계정으로 chatgpt.com 웹에서 연결을 시작해 성공했다는 보고가 여러 건 있고, 그 연결은 데스크톱 앱에도 반영됐습니다. 다만 웹에서도 같은 오류를 본 사용자가 있어 보장된 해결책은 아닙니다. 아래 표에서 연결하려던 대상을 찾아 해당 경로부터 시도하세요.

OAuth state not found가 나는 지점: 승인 뒤 OpenAI 콜백이 404를 반환

OAuth state는 앱이 시작한 승인 요청과 브라우저에서 돌아온 응답을 서로 짝지어 주는 값입니다. 이 값을 서버가 찾지 못하면 OAuth state not found가 됩니다.

여러 사용자가 각자 앱 진단 로그로 확인한 흐름은 같습니다(#54924, #55314).

  1. 데스크톱 앱이 대기 중인 OAuth 연결 시도를 등록합니다.
  2. 브라우저에서 GitHub, Slack 같은 서비스의 승인이 정상적으로 끝납니다.
  3. 앱이 브라우저에서 돌아온 콜백을 받습니다.
  4. 앱이 그 결과를 OpenAI의 POST /aip/connectors/links/oauth/callback으로 보내면, 시도를 등록한 지 3~9초 만에 HTTP 404 {"detail":"OAuth state not found"}가 돌아옵니다.
연결 시도 등록, 브라우저 승인, 콜백 수신까지는 정상이고 마지막 OpenAI 콜백 단계에서 3~9초 만에 HTTP 404 OAuth state not found가 나는 4단계 흐름도

연결 대상 서비스 쪽 승인은 끝났고, 실패하는 곳은 OpenAI 쪽에서 방금 등록한 연결 시도를 찾는 단계입니다. 몇 초 만에 실패하므로 브라우저 탭을 오래 열어 둬서 만료됐다는 설명은 맞지 않아 보입니다. 이 부분은 로그를 바탕으로 한 추정이고, OpenAI는 원인을 공개하지 않았습니다.

이미 시도했다가 효과가 없었다는 보고가 있는 방법은 다음과 같습니다. 각각 한두 명의 보고라 계정에 따라 결과가 다를 수 있지만, 같은 일을 몇 번 더 반복할 이유는 적습니다.

  • 앱 재시작 후 다시 로그인
  • 데스크톱 앱에서 로그아웃, 완전 종료, 다시 로그인
  • ChatGPT 웹에서 로그아웃 후 다시 로그인하고 데스크톱에서 재시도
  • 연결(커넥터) 등록을 새로 만들어 재시도
  • 앱 업데이트 후 재시도(#55955)
  • 웹에서 Slack을 먼저 연결한 뒤 데스크톱에서 재시도

보고된 환경은 대부분 Windows 데스크톱 앱이고, 영향받은 버전으로 26.1013.40934(Windows 패키지 26.1013.4894.0)와 26.1016.51333이 언급됐습니다(#55656). 그렇다고 Windows에서만 생긴다고 단정할 수는 없습니다. Windows의 ChatGPT 웹에서 같은 오류를 본 사용자가 있고, 2026년 4월에는 macOS의 ChatGPT 웹에서 직접 만든 MCP 연결을 설정하다 같은 콜백 404를 겪었다는 OpenAI 커뮤니티 글도 있습니다.

2026년 10월 22일 기준 OpenAI 상태 페이지에는 10월 14일 이후 플러그인 연결 관련 장애가 없고, Codex 변경 내역에도 이 문제를 고쳤다는 항목이 없습니다. 10월 20일의 "Authentication errors for some users"는 일부 지역에서 한 시간가량 이어진 별개의 장애입니다.

무엇을 연결하려 했나: 대상별 우회 경로 네 가지

같은 오류라도 무엇을 연결하려 했는지에 따라 쓸 수 있는 우회 경로가 다릅니다. 표의 근거 수준에서 "단일 보고"는 한 사용자의 사례라는 뜻이고, 사용자 보고는 어느 것이든 OpenAI의 공식 해결책이 아닙니다.

연결하려던 것먼저 시도할 경로근거 수준
OpenAI Developers 플러그인(OpenAI Platform 연결)ChatGPT 웹의 OpenAI Developers 페이지 → Apps 영역 → OpenAI Platform 행의 Connect → 데스크톱 앱 완전 종료 후 재실행. 웹에 Connect 버튼이 없으면 ChatGPT 모바일 앱에서 연결단일 보고(웹 1건, 모바일 1건)
GitHub, Slack, Figma, Firecrawl, Webflow 등 다른 플러그인chatgpt.com/plugins에서 같은 계정으로 연결 시작여러 사용자 보고, 실패 보고도 있음
직접 만든 OAuth MCP 서버웹에서 설치하거나, Codex CLI의 codex mcp login으로 로컬 인증웹은 여러 사용자 보고, CLI는 단일 보고(명령은 공식 문서)
사실은 API 키만 필요platform.openai.com에서 키를 발급해 OPENAI_API_KEY로 설정공식 문서

어느 경로든 데스크톱 앱과 웹, 모바일 앱에 같은 ChatGPT 계정으로 로그인돼 있어야 합니다. OpenAI Developers 공식 문서에 따르면 ChatGPT와 Codex는 플러그인 디렉터리의 같은 목록을 공유하므로, 다른 곳에서 연결한 결과가 데스크톱에 반영되는 구조입니다.

브라우저가 열리기도 전에 "Failed to install plugin"으로 설치가 멈춘다면 OAuth 이전 단계의 다른 문제일 수 있습니다. 아래 os error 32 항목을 먼저 확인하세요.

오류가 설치 단계에서 났는지 승인 뒤에 났는지로 나눈 뒤, OpenAI Developers, GitHub·Slack·Figma 등, 직접 만든 MCP 서버, API 키만 필요한 경우의 시작점과 근거 수준을 보여 주는 분기도

OpenAI Developers 연결: 웹의 OpenAI Platform 행에서 Connect

OpenAI Developers 공식 문서는 Codex에서 /plugins를 열어 OpenAI Developers를 찾고 Install plugin을 누른 뒤, 함께 들어 있는 OpenAI Platform 앱을 연결하라고 안내합니다. 이 연결이 있어야 플러그인이 프로젝트 API 키를 만들 수 있습니다. OAuth state not found는 대개 이 OpenAI Platform 연결 단계에서 납니다.

Windows 11에서 이 단계를 통과한 사용자의 순서는 다음과 같습니다(단일 보고, #54924 2026년 10월 21일 댓글, OpenAI Developers 1.3.6).

  1. 브라우저에서 chatgpt.com에 데스크톱 앱과 같은 계정으로 로그인합니다.
  2. Plugins에서 OpenAI Developers를 엽니다.
  3. 플러그인 페이지의 Apps 영역에서 OpenAI Platform 행을 찾습니다.
  4. 그 행 오른쪽 끝의 Connect를 누르고 브라우저에서 승인을 마칩니다.
  5. 데스크톱 앱을 창만 닫지 말고 완전히 종료한 뒤 다시 실행합니다.

재실행 후 OpenAI Platform에 연결된 계정이 표시되고 OpenAI Developers도 설치·활성 상태로 남았다고 합니다. 핵심은 웹에 로그인만 하고 데스크톱에서 다시 시도하는 것이 아니라, 연결 자체를 웹에서 시작하는 것입니다. 웹 로그인 후 데스크톱 재시도는 실패 보고가 있습니다.

웹의 OpenAI Platform 행에 Connect 버튼이 보이지 않았던 사용자는 ChatGPT 모바일 앱에서 OpenAI Developers를 설치하고 연결했고, 그 뒤 데스크톱 앱이 자동으로 동기화돼 정상 동작했다고 합니다. 이것도 한 사람의 보고입니다.

GitHub·Slack·Figma 플러그인: chatgpt.com/plugins에서 연결 시작

OpenAI Developers 외의 플러그인도 같은 오류가 납니다. 보고된 대상은 GitHub, Slack, Webflow, Meta, Figma, Firecrawl, 그리고 직접 만든 OAuth MCP 서버입니다(#55314, #55656, #55139). 이미 연결된 GitHub 플러그인에 두 번째 GitHub 프로필을 추가할 때도 같은 실패가 기록됐습니다.

이 경우에는 브라우저에서 chatgpt.com/plugins를 열고 해당 플러그인을 검색해 연결을 시작합니다. GitHub라면 https://chatgpt.com/plugins/?search=github로 바로 갈 수 있습니다. 승인을 마친 뒤 데스크톱 앱을 다시 실행해 반영 여부를 확인합니다.

보고된 결과는 엇갈립니다.

  • 효과 있음: 웹에서 GitHub 플러그인 설치(#55656), 웹에서 새로 연결을 시작해 두 번째 GitHub 프로필 추가(#55314), 웹에서 Firecrawl을 연결한 뒤 Codex 데스크톱에서도 사용(#54626)
  • 효과 없음: Slack을 웹에서 연결했지만 Windows 앱에서는 계속 오류(#54924), 직접 만든 MCP 플러그인이 Windows의 웹에서도 같은 오류(#54924)

여러 사용자에게 통했지만 모두에게 통한 것은 아닙니다. 웹에서도 실패하면 같은 시도를 반복하지 말고 아래 확인과 보고 단계로 넘어가는 편이 낫습니다.

직접 만든 MCP 서버: codex mcp login으로 로컬에서 인증

직접 운영하는 MCP 서버를 연결하려던 경우에는 선택지가 하나 더 있습니다. 플러그인 화면 대신 Codex 자체 MCP 설정에 서버를 추가하고 CLI로 로그인하는 방법입니다. Codex MCP 공식 문서에 따르면 이 설정은 ~/.codex/config.toml에 저장되고 ChatGPT 데스크톱 앱, Codex CLI, IDE 확장이 함께 씁니다.

bash
codex mcp add my-server --url https://mcp.example.com
codex mcp login my-server
codex mcp list

my-server와 주소는 자신의 서버로 바꿉니다. 클라이언트 등록 방식을 직접 고르려면 로그인할 때 --oauth-client-registration cimd 또는 --oauth-client-registration dcr을 붙입니다.

데스크톱 플러그인 연결이 계속 실패하던 같은 서버에 codex mcp login <서버 이름> --oauth-client-registration cimd로 로그인이 완료됐다는 보고가 있습니다(단일 보고, #54924 2026년 10월 19일 댓글). 공식 문서상 CLI 로그인은 http://127.0.0.1:<포트>/callback/... 형태의 로컬 콜백에서 끝나므로, 404가 나는 OpenAI 호스팅 콜백 단계를 거치지 않아 우회된 것으로 보입니다. 이 설명은 추정입니다. 같은 사용자는 이후 읽기 요청 성공에는 이전에 받은 토큰이 영향을 줬을 수 있다고 덧붙였습니다.

이 방법은 자신이 주소를 알고 있는 MCP 서버에만 해당합니다. GitHub, Slack 같은 호스팅 플러그인을 대신하지는 못하고, 공식 문서에도 호스팅 플러그인의 도구는 기능이 다를 수 있다고 적혀 있습니다. 외부 모델 API와 MCP 설정의 차이는 Codex에 외부 모델 API를 연결할 때 확인할 네 가지 경계에서 다룹니다.

API 키만 필요했다면: platform.openai.com에서 직접 발급

OpenAI Developers를 설치하려던 목적이 결국 프로젝트용 API 키라면 플러그인 연결을 기다릴 필요가 없습니다. OpenAI API 빠른 시작 문서대로 API 키 페이지에서 키를 만들고 환경 변수로 설정합니다.

powershell
setx OPENAI_API_KEY "발급받은_키"

macOS와 Linux에서는 export OPENAI_API_KEY="발급받은_키"를 씁니다. Windows의 setx는 이후 새로 연 터미널부터 적용되므로 터미널과 앱을 다시 실행해야 합니다.

이 방법은 플러그인이 안내해 주는 키 생성 단계만 대신합니다. 받는 키는 같지만, Agents SDK 작성이나 API 오류 점검 같은 플러그인의 다른 기능을 쓰려면 플러그인 설치는 여전히 필요합니다.

설치 단계의 os error 32는 OAuth와 별개인 파일 잠금 문제

브라우저 승인 화면이 나오기 전에 Failed to install plugin: plugin/install failed로 설치가 멈춘다면 원인이 다를 수 있습니다. 한 Windows 사용자의 TUI 로그에는 다음 내용이 반복됐습니다(단일 보고, #54924 2026년 10월 21일 댓글).

text
failed to remove stale remote plugin cache entry
...\openai-developers
file is being used by another process
(os error 32)

이 사용자의 경우 Codex 앱 서버가 띄운 node.exe ./mcp/server.mjs 프로세스가 오래된 openai-developers 캐시를 붙잡고 있었습니다. 처리 순서는 다음과 같았습니다.

  1. Windows 리소스 모니터 → CPU 탭 → 연결된 핸들(Associated Handles)에서 openai-developers를 검색해 캐시를 잡고 있는 프로세스를 찾습니다.
  2. 확인된 그 프로세스 하나만 종료하고, 핸들이 사라졌는지 다시 확인합니다.
  3. 오래된 openai-developers 캐시 폴더를 지우지 말고 다른 위치로 옮깁니다.
  4. /plugins에서 다시 설치합니다.

로그에 os error 32와 openai-developers 캐시가 사용 중이라는 문구가 함께 있을 때만 해당합니다. node.exe나 codex.exe를 전부 종료하지 마세요. 설치가 끝난 뒤 OpenAI Platform 연결에서 OAuth state not found가 나면 그때는 앞의 웹 경로로 돌아갑니다. 이 사용자도 두 문제를 차례로 겪었습니다. Windows 앱의 app-server 시작 오류나 플러그인 캐시 문제가 더 있다면 failed to start codex app-server 해결: Windows 앱·CLI 오류 문구별 조치를 참고하세요.

비슷해 보이지만 다른 증상도 두 가지 있습니다.

  • 앱 안의 플러그인 목록이 cloudflare_challenge와 함께 불러와지지 않는 경우(#55139)는 목록 표시 문제입니다. 목록이 이렇게 실패해도 설치된 앱은 활성 상태로 남아 있었다는 보고가 있어, 이것만으로 OAuth 연결이 깨졌다고 볼 수는 없습니다.
  • 재시도하면서 만든 직접 만든 MCP 플러그인을 영구 삭제할 때 HTTP 409 "Remove this app from the published plugin before deleting it."가 나는 것도 별도 버그입니다(#54626). 제거(Uninstall)는 되지만 영구 삭제가 안 되는 문제로, 일부 사용자에게는 10월 20일께 부분적으로 풀렸습니다.

연결됐는지 확인하기: 키를 만들지 않는 Try in a chat 점검

오류 알림이 사라졌다고 연결된 것은 아닙니다. Slack 사례에서는 도구가 "Authentication for Slack was requested and accepted. Retry this tool call now."라고 답했지만, 다시 호출하자 USER_NOT_LOGGED_IN과 "app is not connected"가 돌아왔습니다. 실제로 읽기가 되는지 확인해야 합니다.

OpenAI Developers는 키를 만들지 않고 확인할 수 있습니다(위 웹 경로를 보고한 사용자의 방법).

  1. 데스크톱 앱에서 OpenAI Developers 플러그인을 열고 Try in a chat을 누릅니다.
  2. "Create an OpenAI API key to use in this project"라고 요청합니다.
  3. OpenAI Platform 위젯이 내 조직과 프로젝트 목록을 불러오면 연결된 것입니다.
  4. 키가 필요하지 않다면 생성을 확정하지 말고 그 자리에서 멈춥니다.

공식 문서는 플러그인을 처음 쓰기 전에 새 채팅을 시작하라고 안내하므로, 확인도 새 채팅에서 하는 편이 좋습니다.

다른 플러그인은 계정이 있어야 답할 수 있는 읽기 전용 요청을 하나 보내 봅니다. GitHub라면 내 저장소 목록을, Slack이라면 특정 채널의 최근 메시지를 요청하는 식입니다. 결과 대신 USER_NOT_LOGGED_IN이 돌아오면 아직 연결되지 않은 상태입니다.

재시도를 멈출 때와 GitHub 이슈에 남길 정보

다음 중 하나라도 해당하면 같은 시도를 반복해도 결과가 바뀔 가능성이 낮습니다.

  • 데스크톱 앱에서 이미 두세 번 실패했고, 매번 승인 직후 같은 알림이 뜹니다.
  • 웹(그리고 OpenAI Developers라면 모바일 앱)에서 연결을 시작했는데도 실패했습니다.
  • 로그에 /aip/connectors/links/oauth/callback의 404가 남아 있습니다.

이 단계라면 원인과 수정 시점은 OpenAI 쪽에 달려 있습니다. 2026년 10월 22일 기준 원인, 수정 일정, 계정이나 워크스페이스 설정의 영향 여부는 공개되지 않았습니다. 새 이슈를 만들기보다 기존 이슈에 정보를 보태는 편이 확인이 빠릅니다. OpenAI Developers는 #54924, GitHub 플러그인은 #55314나 #55656이 가깝습니다.

기존 보고자들이 넣은 정보는 다음과 같습니다.

넣을 것찾는 곳
앱 버전앱의 About 대화상자(예: 26.1013.40934)
Windows 패키지 버전설치된 패키지 이름(예: OpenAI.Codex_26.1013.4894.0_x64)
Feedback ID앱의 Help → Report a bug로 보낸 뒤 받는 ID(no-active-thread-... 형식)
시도한 시각UTC 기준 시각
연결하려던 플러그인OpenAI Developers, GitHub, Slack 등
이미 해 본 우회 방법과 결과웹, 모바일, CLI 중 무엇을 했고 어떻게 됐는지

토큰, OAuth state·code 값, 콜백 URL 전체, 계정 ID는 GitHub처럼 공개된 곳에 붙여 넣지 마세요. 기존 보고자들도 이 값들은 모두 빼고 올렸습니다. 수정 여부는 해당 이슈가 닫히거나 Codex 변경 내역에 플러그인 연결 관련 항목이 올라오는지로 확인합니다.

OAuth state not found에 대해 자주 헷갈리는 점

Codex 로그인 오류(Token exchange failed)와 같은 문제인가요?

아닙니다. localhost:1455나 "Token exchange failed"는 Codex 자체에 로그인하는 단계의 문제이고, OAuth state not found는 이미 로그인한 상태에서 플러그인을 연결하는 단계의 문제입니다. 로그인 자체가 안 된다면 Codex Token Exchange Failed: 로그인 실패 단계를 먼저 찾으세요를 보세요.

Mac 데스크톱 앱에서도 생기나요?

이번 보고는 대부분 Windows 데스크톱 앱이지만, macOS 데스크톱 앱이 영향을 받지 않는다는 근거도 없습니다. 2026년 4월 macOS의 ChatGPT 웹에서 같은 콜백 404가 보고된 적이 있습니다. Mac에서 이 알림을 봤다면 같은 우회 경로를 쓰고, 보고할 때 macOS라는 점을 꼭 적어 주세요.

웹에서 연결하면 데스크톱 앱에서도 바로 쓸 수 있나요?

성공한 보고에서는 데스크톱 앱을 완전히 종료하고 다시 실행한 뒤 반영됐습니다. 데스크톱 앱과 웹이 같은 계정이어야 하며, 반영되지 않으면 위의 읽기 요청으로 연결 상태를 확인하세요.

내용에 오류가 있거나 글에서 다루지 않은 문제를 만났다면 글 주소와 상황을 hi@laozhang.ai로 보내 주세요. 확인 후 글을 수정합니다.