Claude Code가 세션 ID를 조회하는 방법
세션은 프로젝트별로 저장됩니다. Anthropic의 세션 문서에 따르면 Claude Code는 트랜스크립트를 ~/.claude/projects/<project>/<session-id>.jsonl에 JSONL 형태로 보관하며, 여기서 <project>는 영숫자가 아닌 문자가 -로 대체된 작업 디렉토리 경로입니다.
ID로 세션을 재개(resume)할 때 Claude Code는 다음 순서로 검색합니다.
- 현재 프로젝트 디렉토리 및 해당 git worktrees
- 이 기기의 다른 모든 프로젝트
Anthropic은 두 번째 단계에 조건을 추가했습니다. "교차 프로젝트 검색은 정확히 하나의 다른 프로젝트만 해당 메시지가 포함된 트랜스크립트를 보유하고 있을 때만 ID를 확인하므로, 수동으로 복사된 중복본이 있으면 Claude Code는 임의의 복사본을 재개하는 대신 '찾을 수 없음'을 보고합니다."
버전도 중요합니다. 오류 레퍼런스에 따르면 "v2.1.223 이전 버전에서는 조회가 현재 프로젝트 디렉토리와 git worktrees에서 멈췄으므로, 세션이 마지막으로 작동했던 디렉토리에서 재개해야 합니다." 구버전을 사용하는 경우 다른 폴더에서 명령을 실행하는 것만으로도 오류가 발생할 수 있습니다.
원인 1: ID가 잘못됨
가장 단순한 원인은 오타나 잘못된 ID입니다. 대화형으로 시작한 세션의 경우 ID가 Claude Code에 표시됩니다. 비대화형 실행의 경우 Anthropic은 "ID는 --output-format json 출력의 session_id 필드에 있다"고 설명합니다.
두 가지 세부 사항 때문에 ID를 혼동하기 쉽습니다.
- 표시 이름(Display names)은 ID가 아닙니다. 이름을 지정하지 않은 세션은 폴더 이름에 짧은 접미사가 붙은 기본 표시 이름을 갖게 됩니다. Anthropic은 "기본 이름은 재개 핸들이 아닙니다. 이를
claude --resume또는/resume에 전달하면 Claude Code는 세션을 찾지 못합니다"라고 명시합니다. - 생성된 제목은 작동하지만 이름으로만 작동합니다. "생성된 제목만 재개 핸들로 작동합니다." 이름으로 재개하는 기능은 기기의 모든 프로젝트가 아닌 현재 저장소와 해당 worktrees 내에서만 확인됩니다.
원인 2: 30일 후 트랜스크립트가 삭제됨
이 원인은 정리가 자동으로 조용히 이루어지기 때문에 놓치기 쉽습니다. 오류 레퍼런스에는 "Claude Code는 보존 기간(기본 30일)이 지나면 보존 스윕 규칙에 따라 트랜스크립트를 제거한다"고 명시되어 있습니다.
이를 제어하는 설정은 cleanupPeriodDays입니다. Anthropic의 설정 레퍼런스에 따르면 Claude Code는 해당 일수 동안 "세션 트랜스크립트 및 기타 애플리케이션 데이터"를 보관하며, "스윕(sweep)은 메시지를 표시하지 않고 트랜스크립트를 삭제합니다." 기본값은 30일이며 최소값은 1일입니다.
따라서 마지막으로 접속한 지 한 달이 넘은 세션은 단순히 사라졌을 수 있습니다. 삭제 시 별도의 메시지가 없으므로 이 오류가 첫 번째 신호가 될 수 있습니다.
관련된 두 가지 사항은 다음과 같습니다.
- Desktop 및 Cowork 세션은 다르게 처리됩니다. 기본적으로 Claude Code는 Claude Desktop 또는 Cowork에서 시작하거나 최근에 이어 나간 세션의 트랜스크립트를 이 기간 이후에도 유지하며, 별도의 설정인
desktopSessionCleanupPeriodDays를 통해 연령 제한을 둘 수 있습니다. - 트랜스크립트를 더 오래 보관할 수 있습니다.
0으로 설정하면 유효성 검사에 실패하므로 Anthropic은 "장기 보존을 위해3650과 같은 큰 값을 설정할 것"을 권장합니다.
값을 높이는 것은 여전히 존재하는 트랜스크립트만 보호합니다. 이미 스윕에 의해 삭제된 경우에는 설정을 변경해도 복구되지 않습니다.
원인 3: 다른 기기에서 실행된 세션
트랜스크립트는 동기화되지 않습니다. 오류 레퍼런스에 따르면 "Claude Code는 트랜스크립트를 로컬에 저장하므로, 세션이 실행되었던 기기에서 세션을 재개해야 합니다."
업무용 노트북에서 세션을 시작하고 데스크톱에서 재개하려고 하면 찾을 수 있는 데이터가 없습니다. 해결 방법은 원래 실행했던 기기에서 재개하는 것입니다. 기기 간에 작업을 자주 이동하는 경우, 각 기기에서 히스토리가 저장되는 위치를 다룬 Claude Code 세션 히스토리 찾기, 재개 및 삭제 가이드를 참고하세요.
원인 4: 두 개의 복사본이 동일한 ID를 가짐
만약 ~/.claude/projects 아래의 프로젝트 폴더를 복사했다면, 두 개의 트랜스크립트가 동일한 ID를 갖게 될 수 있습니다. Anthropic은 이 경우 "Claude Code는 한 복사본을 임의로 재개하는 대신 이 메시지를 보고한다"고 설명합니다.
해결 방법은 중복된 복사본을 제거하거나 이름을 변경하여 하나의 트랜스크립트만 해당 ID를 갖도록 한 다음 다시 재개하는 것입니다.
선택기(Picker)에 나타나지 않는 세션
일부 세션은 의도적으로 세션 선택기에서 제외되며, 이로 인해 세션이 사라진 것처럼 보일 수 있습니다.
-p및 Agent SDK 세션. "Claude Code는claude -p또는 Agent SDK로 생성된 세션을 세션 선택기 및claude --continue에서 제외합니다." 하지만 세션 ID를 직접 전달하여 재개할 수는 있습니다./loop세션. 첫 번째 프롬프트가/loop명령이었던 세션은 선택기에 나타나지 않으며claude --continue에서도 건너뜁니다.- 실행 중인 백그라운드 세션.
claude --continue는 종료된 백그라운드 세션은 열어주지만, 여전히 실행 중인 세션은 열지 않습니다. 이 경우 Claude Code는 종료되면서 해당 세션이 백그라운드에서 실행 중임을 ID와 함께 알려줍니다.
-p 및 SDK 실행의 경우, 오류 레퍼런스의 조언은 "원래 실행 시 출력된 session_id와 ID를 다시 대조해 보는 것"입니다.
이 기기의 모든 프로젝트를 검색하는 방법
대화형 세션의 경우, 세션 선택기는 현재 폴더보다 더 넓은 범위를 검색할 수 있습니다. Anthropic의 세션 문서에 따르면 기본적으로 현재 worktree의 세션(백그라운드 세션 포함)과 /add-dir로 현재 디렉토리를 추가한 세션을 보여줍니다.
범위를 넓히려면:
- "
Ctrl+W를 사용하여 저장소의 모든 worktrees로 확장하거나,Ctrl+A를 사용하여 이 기기의 모든 프로젝트로 확장하십시오."
따라서 대화형 세션에서 이 오류에 대한 문서화된 해결책은 "claude --resume으로 세션 선택기를 열고 Ctrl+A를 눌러 이 기기의 모든 프로젝트로 범위를 넓힌 다음 세션을 선택하는 것"입니다.
관련 없는 프로젝트에서 세션을 선택하면 Claude Code는 세션을 이동시키지 않습니다. 대신 "cd 및 resume 명령을 클립보드에 복사해 줍니다." 만약 해당 프로젝트의 디렉토리가 더 이상 존재하지 않는다면 현재 디렉토리에서 세션을 재개합니다.
비슷하지만 다른 의미의 메시지들
몇 가지 유사한 오류가 있지만 원인은 다릅니다.
Failed to resume the conversation. 이는 Claude Code가 세션을 찾았지만 "저장된 트랜스크립트를 읽거나 처리할 수 없음"을 의미합니다. 부분적으로 로드된 상태로 계속 진행하는 대신 종료되며, 메시지에는 재시도 명령이 포함됩니다. Anthropic의 단계: 세션 ID로 재시도; v2.1.285 이전 버전인 경우 업데이트 후 다시 재개(해당 버전들은 읽을 수 없는 항목이 포함된 경우 재개에 실패함); 그래도 실패하면 새 세션을 시작하십시오.
The saved conversation is no longer on disk. 이 메시지는 백그라운드 세션용입니다. 세션이 "백그라운드 서비스가 꺼진 상태에서 종료되었고, 그 후 기기가 몇 주 동안 꺼져 있는 등의 이유로 트랜스크립트 정리가 저장된 대화를 제거했을 때" 나타납니다. Claude Code는 세션의 원래 프롬프트를 다시 실행하는 대신 거부합니다. claude rm으로 해당 행을 삭제하거나, claude respawn으로 원래 프롬프트를 새 대화로 다시 실행할 수 있습니다.
The session has no saved transcript. 이 메시지는 백그라운드로 이동시킨 세션에 연결하려고 할 때 "자체적인 턴을 실행하기 전에 중지된 경우" 나타납니다. 다른 대화에서 백그라운드로 전환된 경우, Anthropic은 해당 대화가 여전히 온전하다고 언급합니다.
트랜스크립트에 포함되는 것과 포함되지 않는 것
재개가 성공하면 대화 내용을 되찾게 됩니다. Anthropic의 디렉토리 레퍼런스에 따르면 트랜스크립트에는 "메시지, 도구 호출 및 도구 결과"가 포함됩니다. 이것이 트랜스크립트를 잃어버리는 것이 뼈아픈 이유입니다. 세션의 전체 작업 기록이기 때문입니다. 포함된 내용에 대한 자세한 내용은 Claude Code의 트랜스크립트 뷰(transcript view)가 보여주는 것 가이드를 참조하세요.
하지만 트랜스크립트는 기본 수명이 30일인 단일 기기의 파일일 뿐입니다. 결정 사항, 거부된 접근 방식, 추적한 버그의 원인 등 해당 세션 이후에도 중요한 정보들은 다른 곳에도 기록해 두어야 안전합니다.
사람들이 흔히 하는 실수
표시 이름을 붙여넣기. 기본 표시 이름은 재개 핸들이 아닙니다.
구버전에서 다른 폴더에서 명령 실행. v2.1.223 이전에는 다른 프로젝트를 검색하지 않았습니다.
한 달 전 세션 찾기. 트랜스크립트는 기본적으로 메시지 없이 30일 후에 제거됩니다.
다른 기기에서 재개 시도. 트랜스크립트는 로컬에 저장됩니다.
백업용으로 프로젝트 폴더 복사. 중복된 ID는 Claude Code가 '찾을 수 없음'을 보고하게 만듭니다.
해결 방법: 세션 찾기 또는 중요한 내용 복구
1단계: ID 확인
표시 이름이 아니라 Claude Code가 보여준 ID 또는 -p 실행의 JSON 출력에 있는 session_id를 사용하세요.
2단계: 선택기 범위 확장
claude --resume을 실행하고 Ctrl+A를 눌러 이 기기의 모든 프로젝트를 검색하세요.
3단계: 기기 및 기간 확인
세션이 실행되었던 기기에서 재개하세요. 만약 cleanupPeriodDays보다 오래된 세션이라면 트랜스크립트가 사라진 것으로 간주해야 합니다.
4단계: 오래된 세션이 필요한 경우 보존 기간 늘리기
설정에서 cleanupPeriodDays를 더 큰 숫자로 설정하여 향후 트랜스크립트를 더 오래 보관하세요.
5단계: 잃어버리면 안 되는 내용 기록하기
중요한 세션이 끝나면 결정 사항과 발견한 내용을 트랜스크립트 외부에 기록해 두세요.
MemoryLake에서 설정하기
트랜스크립트는 세션의 전체 기록이며 기본적으로 한 기기에 30일 동안 보관됩니다. 결정 사항, 근본 원인, 합의된 컨벤션 등 다음 달에도 필요할 정보들은 기간이 지나도 사라지지 않는 곳에 기록해 둘 가치가 있습니다.
MemoryLake는 결정, 발견, 컨벤션과 같은 프로젝트 컨텍스트를 위한 메모리 레이어입니다. 사용자가 직접 관리하는 한 곳에 보관되며 ChatGPT, Claude Code, Codex 등 연결된 어시스턴트에서 사용할 수 있습니다.
사용자는 자신의 언어로 직접 항목을 작성합니다. 세션 트랜스크립트, ~/.claude 폴더, 세션 선택기, CLAUDE.md 파일, 자동 메모리 또는 어떤 벤더의 저장소에서도 데이터를 읽거나 쓰거나 삭제하지 않습니다. 재개, 보존 및 정리 기능은 Anthropic이 설명한 방식 그대로 작동합니다.
1단계: API 키 생성
로그인 후 대시보드에서 키를 생성합니다. 다른 자격 증명과 마찬가지로 저장소 외부에 보관하세요.

2단계: 첫 번째 메모리 업로드
해결 방법의 5단계에서 작성한 내용부터 시작하세요. 중요한 세션의 결정 사항, 근본 원인, 컨벤션 등을 항목당 하나씩 입력합니다.

3단계: AI 및 에이전트 연결
Claude Code 및 사용하는 다른 어시스턴트를 연결합니다. 어떤 기기에서든 새로운 세션이 동일한 항목을 활용할 수 있습니다.

실제적인 변화
첫 번째 차이점은 재개(resume)에 대한 의존도가 낮아진다는 것입니다. 트랜스크립트가 사라져도 결론은 남아 있습니다.
두 번째는 모든 기기에서 동일한 컨텍스트를 유지한다는 점입니다. 항목들은 세션이 실행된 폴더에 묶여 있지 않습니다.
세 번째는 보존 기간과의 싸움이 없어진다는 것입니다. 작성한 내용은 cleanupPeriodDays에 영향을 받지 않습니다.
Claude Code 세션 재개를 위한 모범 사례
중요한 세션에 이름 지정하기. claude -n 또는 /rename을 사용하고 이름으로 재개하세요.
실제 세션 ID 보관하기. 표시 이름은 재개 핸들로 작동하지 않습니다.
선택기에서 Ctrl+A 사용하기. 기기의 모든 프로젝트를 검색합니다.
보존 기간 파악하기. 트랜스크립트는 기본적으로 30일 후에 제거됩니다.
프로젝트 폴더를 복제하지 않기. 하나의 ID를 가진 두 개의 복사본은 재개 시 '찾을 수 없음' 오류를 발생시킵니다.
실패한 재개를 다시 시도하기 전에 업데이트하기. 이전 버전은 읽을 수 없는 항목이 있으면 실패합니다.
결과 기록하기. 트랜스크립트가 유일한 기록이 되어서는 안 됩니다.
결론
Claude Code는 claude --resume에 세션 ID를 전달했으나 일치하는 저장된 트랜스크립트가 없을 때 'no-conversation-found' 오류를 표시합니다. v2.1.223 이상 버전에서는 현재 프로젝트를 먼저 검색한 다음 기기의 다른 모든 프로젝트를 검색합니다. 문서화된 원인으로는 잘못 입력된 ID, 30일 기본 보존 기간 후 삭제된 트랜스크립트, 다른 기기에서 실행된 세션, 동일한 ID를 가진 중복 복사본 등이 있습니다.
복구하려면 ID를 확인하고, claude --resume으로 선택기를 열어 Ctrl+A를 누르고, 세션이 실행되었던 기기에서 재개하세요. 트랜스크립트 기간이 만료되어 사라졌다면 복구가 불가능하므로, 향후를 위해 cleanupPeriodDays를 높이고 중요한 세션의 결정 사항은 트랜스크립트 외부에 기록해 두시기 바랍니다.