프로젝트

일반

사용자정보

Actions

이슈 #239

진행중
CP RL

5-6. 에러 핸들링 (API 오류. 타임아웃)

이슈 #239: 5-6. 에러 핸들링 (API 오류. 타임아웃)

Chris Park이(가) 약 5시간 전에 추가함.

상태:
해결
우선순위:
보통
담당자:
목표버전:
시작일:
2026/04/16
완료일:
진척도:

0%

추정시간:
(합계: 0:00 시간)

설명

재시도 로직. 사용자 친화적 에러 메시지

완료 내역

  • InterruptReason 4가지 분류 (src/types/chat.ts:5): background | network | abort | error
  • 사용자 친화 에러 메시지 (src/components/MessageBubble.tsx:18-23):
    • background: "백그라운드에서 연결이 끊겼어요."
    • network: "네트워크 문제로 응답이 중단됐어요."
    • abort: "응답을 중단했어요."
    • error: "응답을 받지 못했어요."
  • 원인별 아이콘 차등 (MessageBubble.tsx:45-48): network/background → WifiOff, 그 외 → AlertCircle
  • 수동 재시도 버튼 + retryMessage(conversationId, messageId) 로직 (src/stores/chatStore.ts:348-396)
    • 대상 메시지 이후 잘라내기, HTML 첨부 파일 정리, 직전 사용자 메시지 기반 재생성
  • 백그라운드 자동 중단 (App.tsx:14-24): AppState 'background' 전환 시 interruptGeneration(..., 'background')
  • 앱 재시작 고아 스트리밍 복구 (chatStore.ts:403-414): rehydrate 시 streaming 상태 → interrupted + background 표시
  • 오류 타입 감지 (src/services/api/anthropic.ts:21-32): AbortError 분리 처리
  • SDK 자동 재시도: Anthropic SDK 기본 maxRetries=2 활용 (별도 설정 없음)

주요 파일

  • src/types/chat.ts — InterruptReason 타입
  • src/components/MessageBubble.tsx — 에러 메시지/아이콘/재시도 UI
  • src/stores/chatStore.ts — retryMessage(), interruptGeneration(), rehydrate 복구
  • src/services/api/anthropic.ts — AbortError 분리
  • App.tsx — AppState 백그라운드 감지

관련 커밋

  • 3b6c46b (#237) — 콜백 인터페이스 (onError/onAbort 포함)
  • 재시도/에러 UI는 동일 커밋 범위에서 함께 추가됨

후속 처리 (하위 이슈 분리)

  • 네트워크 오류 자동 분류 — fetch 실패 시 'network' interruptReason 설정 (NetInfo 또는 error.name 기반)
  • 스트림 타임아웃 명시 설정 — client.messages.stream()에 timeout 옵션 지정, 초과 시 사용자 친화 메시지

하위 일감 2 (2 건 진행 중 — 모두 미완료)

이슈 #377: 네트워크 오류 자동 분류 (interruptReason 'network')신규Ryan Lee2026/04/16

Actions
이슈 #378: 스트림 타임아웃 명시 설정 및 'timeout' 에러 메시지 추가신규Ryan Lee2026/04/16

Actions

CP Chris Park이(가) 7달 전에 변경 Actions #1

  • 프로젝트을(를) 14에서 Alphea App(으)로 변경되었습니다.
  • 목표버전을(를) 6월 중간 버전(으)로 지정되었습니다.

RL Ryan Lee이(가) 7달 전에 변경 Actions #2

보강: 에러 분류·UI·재시도 구현 내역 명시, 네트워크/타임아웃은 하위 이슈로 분리

RL Ryan Lee이(가) 7달 전에 변경 Actions #3

  • 상태을(를) 신규에서 해결(으)로 변경되었습니다.

에러 핸들링 기본 구현 완료 — 분류/UI/재시도/백그라운드 감지. 네트워크/타임아웃 세부 처리는 하위 이슈

RL Ryan Lee이(가) 7달 전에 변경 Actions #4

  • Subtask에 #377이(가) 추가되었습니다.

RL Ryan Lee이(가) 7달 전에 변경 Actions #5

  • Subtask에 #378이(가) 추가되었습니다.
Actions

내보내기 PDF Atom