Codex resume interrupted가 떠도 app-server 완료 답부터 확인할 것

Codex resume interrupted 표시가 나와도 같은 작업부터 다시 실행하지 마세요. app-server 클라이언트라면 같은 thread를 thread/read와 includeTurns: true로 새로 읽습니다. 해당 turn의 최신 status와 final answer를 확인합니다. fresh read가 completed와 최종 답을 돌려주면 저장된 완료 결과를 회수합니다.

2026년 9월 22일 Codex CLI 0.155.1 app-server와 계정을 쓰지 않는 로컬 고정 응답 fixture로 확인했습니다. 완료와 resume을 겹친 10회 중 3회는 resume 결과가 interrupted였지만, 세 경우 모두 primary turn은 completed였고 뒤이은 fresh thread/read는 completed와 final answer를 반환했습니다.

중단으로 표시된 대화에서 fresh read로 완료 답을 회수하는 상태 대조 개념도

먼저 확인할 순서

  1. 같은 thread ID와 문제가 된 turn ID를 보관합니다.
  2. 새 thread/read 요청에 includeTurns: true를 줍니다.
  3. 같은 turn의 status가 completed인지 확인합니다.
  4. assistant final answer가 있으면 먼저 별도로 보관합니다.
  5. 파일 작업이었다면 git diff와 대상 파일도 읽기 전용으로 확인한 뒤 재실행 여부를 정합니다.

resume 화면 하나만 보고 작업을 반복하면 이미 끝난 파일 수정이나 명령을 중복 실행할 수 있습니다.

직접 재현에서 무엇이 달랐나

경우 resume 결과 fresh thread/read 판정
완료 뒤 resume한 control 1회 completed completed, final 있음 정상 대조군
완료와 resume을 겹친 10회 중 3회 interrupted completed, final 있음 resume 응답과 이후 저장 상태가 불일치
나머지 overlap 7회 completed completed, final 있음 race가 매번 나타나지는 않음

이번 ungated 재현의 stale resume 응답에는 final text도 포함돼 있었습니다. 공개 이슈의 timing hook 재현처럼 final answer 자체가 resume 응답에서 빠진 경우까지 같았다고 확대하지 않습니다.

fresh read에도 답이 없으면

그때는 이 race와 같다고 단정할 수 없습니다. 실제 turn 중단, 저장 비활성화, 프로세스 종료, 인증·연결 오류를 별도로 확인해야 합니다. 파일을 바꾸는 작업이었다면 대화 상태와 파일 결과도 분리해 확인하세요.

resume 뒤 지침이 갱신됐는지가 문제라면 Codex resume에서 AGENTS.md 변경 반영을 확인하는 방법의 marker 대조가 담당 범위입니다. 지침 파일의 로드 범위부터 헷갈린다면 Codex가 읽은 AGENTS.md 파일을 확인하는 방법을 먼저 봅니다.

검색 결과의 일반 resume 설명과 무엇이 다른가

2026년 9월 22일 Google에서 Codex resume interrupted final answer를 검색했을 때 상위 일반 결과는 특정 세션의 stream 오류, 원격 UI에서 답이 사라지는 문제, 일반 resume 사용법으로 나뉘었습니다. Naver의 Codex resume interrupted 결과도 /resume 명령 설명과 다른 interrupted 이슈가 중심이었습니다.

상위 결과에서 resume 응답과 fresh thread/read의 같은 turn을 대조해 중복 실행을 결정하는 절차는 확인하지 못했습니다. 이는 검색량이 0이라는 뜻이 아닙니다. 이 글은 공개 질문 1건과 동일 버전 로컬 재현을 근거로 한 탐색 답이며, seoin.dev 독자의 반복 질문 빈도와 정확 월간 검색량은 미확인입니다.

확인 범위

공개 이슈의 patch는 Codex 0.155.1 source에 적용되는 것을 확인했습니다. 이어서 저장소가 고정한 Rust 1.95 도구체인으로 빌드를 시작했지만 이 Mac의 Apple Command Line Tools에 xcrun과 macOS SDK가 없어 링크 과정에서 중단됐습니다. 따라서 이 글의 로컬 수치는 설치된 동일 버전에서 자연 발생한 overlap 결과이며, 공개 timing hook의 hasFinal=false, 정확한 발생률, 모든 클라이언트의 동작을 재현했다는 뜻이 아닙니다. 공식 수정 버전도 아직 확인되지 않았습니다.

한 줄 판정

resume의 interrupted는 곧바로 데이터 손실 판정이 아닙니다. 같은 turn을 fresh thread/read로 다시 읽어 completed와 final answer가 확인될 때는 저장된 답을 회수하고, 둘 다 없을 때만 실제 중단이나 저장 실패를 따로 조사하세요.

자주 묻는 질문

interrupted가 보이면 같은 요청을 바로 다시 보내도 되나?

먼저 fresh read와 실제 파일 결과를 확인합니다. 이미 완료된 쓰기나 명령을 다시 보내면 중복 변경이 생길 수 있습니다.

thread/read는 어떤 옵션이 필요한가?

공식 App Server 문서의 요청처럼 같은 thread ID에 includeTurns: true를 사용해야 저장된 turn과 item을 함께 대조할 수 있습니다.

{"method":"thread/read","id":2,"params":{"threadId":"같은-thread-id","includeTurns":true}}

실제 thread ID만 바꾸고, 응답의 같은 turn ID에서 status와 assistant final item을 함께 확인합니다.

fresh read도 interrupted이고 final answer도 없으면?

이번 race에서 회수된 경우와 다릅니다. 실제 중단, history 저장 설정, app-server 종료, 인증·연결 오류를 각각 확인하고 파일 작업은 git diff와 대상 파일로 별도 판정합니다.

참고

검증 기준

  • 마지막 업데이트일: 2026-09-22
  • 확인 환경: macOS, Codex CLI 0.155.1 app-server, 비민감 로컬 SSE fixture
  • 직접 확인: control 1회와 overlap 10회; overlap 3회에서 resume interrupted, fresh read completed와 final answer 확인
  • 빌드 시도: rust-v0.155.1에 공개 timing patch 적용 성공, Rust 1.95 dependency compile 시작, Apple xcrun·macOS SDK 부재로 링크 실패
  • 검색 대조: Google·Naver Orca 일반 결과; 일반 resume 사용법과 다른 interrupted 사례가 중심
  • 주요 근거: OpenAI Codex App Server, openai/codex #47124
  • 미확인: gated hasFinal=false, 정확 발생률, 공식 수정 버전, 정확 검색량, seoin.dev 반복 질문 빈도

직접 만든 실습 자료와 새 도구 소식

AI 도구로 만든 실습 자료, 달라진 기능과 강의 소식을 준비하고 있습니다. 발송을 시작하면 안내해 드려요. 먼저 확인 메일에서 본인 이메일을 확인해 주세요.

신청하기 전에 첫 소식 미리보기에서 내용과 자료를 확인해 보세요.

질문이나 의견을 남겨주세요

이름을 입력하지 않아도 돼요. ‘깜짝 놀란 올빼미’ 같은 별명이 자동으로 붙어요.