본문으로 건너뛰기

Codex가 Reconnecting을 반복할 때 작업을 잃지 않는 해결 순서

Reconnecting 1/5부터 5/5까지 보였다는 사실만으로 원인을 알 수는 없습니다. 마지막 지시와 변경 파일을 보존한 뒤 새 작업, 기본 명령, 다른 실행 방식, 네트워크 조건을 하나씩 비교하세요.

•••5 분 분량•OpenAI Codex
Codex Reconnecting 1/5에서 5/5까지 반복될 때 작업 보존, 간단한 범위 확인, 원인 구분, 가역적 복구, 상태 검증과 공식 보고로 이어지는 5단계 진단 흐름

Reconnecting은 Codex가 끊어진 연결을 복구하려 한다는 상태 표시입니다. 현재 작업이 손상됐는지, 클라이언트 버전 문제인지, 인증이 만료됐는지, 네트워크 경로가 불안정한지, 서비스가 잠시 중단됐는지는 이 표시만으로 결정할 수 없습니다.

그러므로 ~/.codex, 모든 세션, 로그인 정보를 먼저 삭제하지 마세요. 저장소의 변경은 디스크에 남아 있을 수 있지만 미완료 작업에는 마지막 요청 문구, 승인, 도구 출력, 확실히 끝난 단계가 들어 있습니다. 이것이 복구와 버그 보고에 필요한 증거입니다.

Reconnecting 1/5가 5/5까지 진행한 뒤 다음 오류가 보이면, 재전송하기 전에 작업 상태를 기록하세요.

text
stream disconnected before completion

마지막 지시, 대상 파일, 마지막으로 완료를 확인한 작업을 짧게 복사합니다. 외부 메시지 전송, 배포, 삭제처럼 되돌리기 어려운 지시는 즉시 반복하지 마세요. 실행은 끝났지만 마지막 화면 갱신 정보만 도착하지 않았을 가능성이 있습니다.

먼저 영향 범위를 확인하기

문제가 난 작업은 그대로 두고 다음을 확인합니다.

  1. 같은 프로젝트에서 새 작업을 열어 현재 디렉터리 확인처럼 작은 읽기 전용 요청을 보냅니다.
  2. 내장 터미널에서 pwd 또는 git status를 실행합니다.
  3. CLI나 IDE 확장 프로그램이 있다면 같은 크기의 읽기 전용 요청을 다른 실행 방식에서 보냅니다.

결과는 바로 다음 선택을 바꿉니다.

관찰좁혀진 범위안전한 다음 행동
새 작업은 정상이고 기존 작업만 재연결저장된 작업 또는 해당 응답 스트림기존 작업을 보존하고 짧은 진행 내용 요약으로 새 작업에서 계속
CLI는 정상이고 Desktop만 실패데스크톱 앱 버전, 실행 프로세스, 해당 연결 경로버전을 비교한 뒤 Desktop을 완전히 종료하고 다시 열기
셸은 정상인데 Codex 앱·CLI·IDE가 모두 실패로컬 셸 명령보다 Codex 연결 문제를 우선 확인인증, 버전, 서비스, 네트워크를 하나씩 확인
git status도 멈춤저장소, 파일 시스템, 셸, 로컬 프로세스 문제먼저 기본 셸 명령이 멈추는 원인부터 해결
여러 앱·CLI·IDE가 두 개의 허용된 네트워크에서 모두 실패계정, 서비스, 광범위한 클라이언트 문제 가능성로컬 데이터 변경을 멈추고 진단 자료 준비
Codex Reconnecting 원인 분리와 다음 행동 선택 지도. 작업 보존, 간단한 확인 요청, 결과 해석, 인증·429·timeout·stream 오류 분기, 가역적 재시작, 상태 확인과 오류 보고 준비를 보여 준다

OpenAI 공식 문제 해결 안내도 응답이 멈춘 상태에서 승인 대기 여부, 기본 터미널 명령, 더 작은 새 대화를 먼저 확인하라고 안내합니다. 기존 작업을 보존하면서 원인이 발생한 범위를 좁히는 방법입니다.

앱·CLI·IDE별로 버전을 따로 기록하기

CLI에서는 다음을 실행합니다.

bash
codex --version
codex --help

Desktop은 About 화면, IDE는 확장 프로그램 상세 화면에서 버전을 확인합니다. “최신 버전”이라는 메모만으로는 부족합니다. OpenAI는 데스크톱 앱과 CLI가 서로 다른 Codex 버전을 포함할 수 있다고 설명합니다.

업데이트를 초기에 확인할 이유도 있습니다. 공식 ChatGPT & Codex changelog는 Codex CLI 0.148.0에서 서비스 제공자의 일시적 장애가 났을 때 응답 재연결이 개선됐다고 기록합니다. 같은 날 클라이언트 업데이트에는 대기 상태 또는 reconnecting 이후 작업을 사용할 수 없게 되는 문제의 수정도 있습니다.

이는 “버전을 비교하고 업데이트하라”는 근거이지 “모든 Reconnecting은 오래된 버전 때문이다”라는 근거는 아닙니다. 업데이트 후에는 같은 최소 요청만 다시 실행하고 다른 설정을 동시에 바꾸지 마세요.

명확한 오류는 별도 경로로 분리하기

재연결 횟수보다 전체 오류가 더 구체적인 단서를 줍니다.

  • access token could not be refreshed라면 Codex 토큰 갱신 문제로 이동합니다.
  • HTTP 429, 사용 한도, 초기화 시각이면 Codex 사용 한도을 확인합니다.
  • 명령, MCP 서버, 클라우드 설정 묶음의 timeout이 명시되면 Codex 시간 초과 진단를 확인합니다.
  • stream disconnected before completion과 반복 재연결만 있다면 아직 한도 또는 인증 문제라고 단정하지 않습니다.

일반 응답 스트림 중단 하나만 보고 로그아웃하지 마세요. 로그아웃은 인증 상태를 바꾸므로 원래 문제가 네트워크인지 토큰인지 비교하기 어렵게 만듭니다. 명확한 인증 오류가 있을 때 원문을 저장한 뒤 문서화된 로그인 흐름을 시도합니다.

실제 Codex 실행 환경에서 네트워크 조건을 하나만 비교하기

브라우저에서 ChatGPT가 열리는 것은 브라우저 연결 경로만 정상이라는 뜻입니다. Codex Desktop, 터미널, VS Code 확장 프로그램 실행 환경, WSL, 컨테이너, Remote SSH는 서로 다른 프록시, DNS, 신뢰하는 인증서, 방화벽 정책을 사용할 수 있습니다.

먼저 Codex 프로세스가 실제로 실행되는 컴퓨터나 원격 환경을 확인하세요. 계정, 프로젝트, 클라이언트 버전, 요청 크기를 고정하고 허용된 조건 하나만 바꿉니다.

  • 회사 관리 네트워크와 허용된 일반 네트워크를 비교합니다.
  • 정책이 허용하는 경우 VPN 사용 여부를 한 번 비교합니다.
  • 로컬 프록시가 필수라면 프로세스가 실제 포트에서 연결 대기하는지 확인합니다.
  • WSL, 컨테이너, Remote SSH에서 실패하면 노트북의 브라우저가 아니라 그 환경에서 확인합니다.

변경 전후의 시간, 마지막 상태, 오류 원문을 기록합니다. 다른 네트워크에서 정상 동작하면 기존 연결 경로가 관련 있다는 증거는 강해집니다. 그러나 한 번의 성공으로 DNS, TLS 검사, WebSocket, 프록시 규칙 중 무엇이 원인인지 확정할 수는 없습니다.

Clash나 프록시 설정이 항상 답은 아닌 이유

한국어 자료에서는 Clash, .env, HTTP_PROXY, WebSocket 설정을 적용하기 전에는 다음 두 통신 경로를 구분해야 합니다.

  1. Codex 클라이언트가 모델 응답을 받는 연결
  2. Codex가 샌드박스 안에서 실행하는 명령의 외부 네트워크 연결

OpenAI 권한 설정 명세의 네트워크 프록시는 샌드박스 명령의 통신을 위한 설정입니다. 도구에 HTTP(S)와 WebSocket 프록시 환경 변수를 제공할 수 있지만, curl이나 패키지 관리자가 성공했다는 사실이 데스크톱 앱의 모델 응답 경로까지 바뀌었다는 증거는 아닙니다.

공식 현재 설정 참조 문서에 없는 설정 키를 영구 해결책으로 추가하지 마세요. 비교가 필요하면 변경 전 값을 저장하고 한 항목만 변경한 뒤 되돌릴 방법을 유지합니다. 사용자 지정 모델 제공자를 사용한다면 해당 제공자와 설치된 Codex 버전의 통신 방식 문서를 기준으로 해야 합니다.

Codex Reconnecting의 다섯 원인 범위별 신호, 한 번에 하나씩 확인하는 방법, 결과가 증명하는 범위와 안전한 다음 행동을 정리한 표. 작업, 클라이언트, 인증, 네트워크 경로, 일시적 서비스 문제를 구분한다

증상 범위에 맞는 재시작 선택하기

기존 작업 하나만 실패하면 삭제하지 말고 새 작업으로 목표, 완료 단계, 파일 목록, 남은 불확실성만 전달합니다. 새 작업에는 먼저 git status로 현재 상태를 확인하도록 요청하세요.

클라이언트 한 종류만 실패하면 다른 진행 중인 작업이 끝난 뒤 앱 또는 IDE 실행 프로세스를 완전히 종료하고 다시 엽니다. 창을 닫아도 백그라운드 프로세스가 남을 수 있습니다. 공식 문제 해결 안내 역시 진행 중인 대화가 끝난 뒤 재시작하라고 안내합니다.

앱·CLI·IDE 모두가 실패하면 OpenAI Status를 확인하고 현지 시각을 남긴 뒤 승인된 네트워크 한 조건만 비교합니다. 범위가 넓은 상태에서 재설치와 캐시 삭제를 반복하면 변수만 늘어납니다.

재연결 후에는 git status와 외부 시스템의 실제 상태를 확인합니다. 최종 메시지가 도착하지 않았어도 도구 호출이나 파일 쓰기가 완료됐을 수 있습니다.

세션 정리는 마지막 검증으로 남기기

OpenAI가 안내하는 위치는 다음과 같습니다.

  • macOS 앱 로그: ~/Library/Logs/com.openai.codex/YYYY/MM/DD
  • 현재 대화 기록: $CODEX_HOME/sessions, 기본 ~/.codex/sessions
  • 보관된 대화 기록: $CODEX_HOME/archived_sessions

여기에는 요청 문구, 경로, 저장소 이름, 도구 출력이 포함될 수 있습니다. 공유 전 토큰, 쿠키, 이메일, 비공개 코드를 제거하고 전체 데이터 디렉터리를 업로드하지 마세요.

같은 프로젝트의 새 작업은 안정적으로 동작하고 특정 기존 작업만 반복 실패할 때에만 해당 대화 기록 격리를 검토할 수 있습니다. 먼저 복구 가능한 사본을 만들고 정확한 파일만 현재 대화 기록 폴더 밖으로 이동한 뒤 같은 최소 확인 요청을 실행합니다. 날짜만 보고 세션 기록을 대량 삭제하는 것은 진단이 아닙니다.

문제가 계속되면 /feedback에 앱·CLI·IDE와 버전, OS와 실제 실행 환경, 발생 시간과 시간대, Reconnecting 표시 순서, 새 작업·다른 실행 방식·기본 명령·네트워크 비교 결과, 최소한의 민감정보를 지운 로그를 포함합니다.

해결을 확인했다는 뜻은 상태 표시가 한 번 사라졌다는 뜻이 아닙니다. 문제 범위를 “기존 작업 하나”, “클라이언트 한 종류”, “네트워크 경로 하나”, “앱·CLI·IDE 모두” 중 하나로 설명할 수 있고 같은 작은 테스트로 다시 확인할 수 있어야 합니다.

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