Guide

에러 처리

headless 클라이언트가 던지는 IssueStickerHeadlessError의 코드와 처리 방법을 설명합니다.

클라이언트가 던지는 모든 오류는 IssueStickerHeadlessError이고, code 속성으로 원인을 구분합니다. createIssue()는 예외를 던지지 않고 null을 돌려주며, 실패 사유를 콘솔 경고로 남깁니다.

에러 코드

code의미
INVALID_PHASE현재 phase에서 허용되지 않은 동작
NOT_INITIALIZED아직 초기화되지 않음
AUTH_FAILEDAPI key 검증·인증 실패
MEMBER_AUTH_REQUIRED멤버 로그인이 필요하거나 실패
NETWORK_ERROR네트워크 요청 실패
CAPTURE_FAILED화면·요소 캡처 또는 업로드 실패
VALIDATION_ERRORAPI key·제목·설명 등 입력값 검증 실패
PAYLOAD_TOO_LARGE이슈 데이터가 전송 한도 초과

에러 확인하기

에러는 두 곳에서 확인할 수 있습니다. 메서드의 try/catch, 그리고 snapshot.error입니다.

import { IssueStickerHeadlessError } from 'issue-sticker/headless';

try {
  await client.submitDraft({ title: form.title, description: form.description });
} catch (error) {
  if (error instanceof IssueStickerHeadlessError && error.code === 'VALIDATION_ERROR') {
    showToast(error.message);
  }
}

client.subscribe((snapshot) => {
  if (snapshot.error) showError(snapshot.error.code, snapshot.error.message);
});
에러 처리 — 이슈스티커 Guide