Skip to content

[BE] /gotchas 전 요청 500 — UN HANDLED EXCEPTION #507

Description

@sumi-0011

증상

뽑기 API가 count 값과 무관하게 500을 반환합니다. 사용자에게는 "뽑기를 진행중입니다"가
약 10초 떠 있다가 "펫 뽑기에 실패했습니다" 토스트와 함께 모달이 닫히는 것으로 보입니다.
제보 2건이 올라와 있습니다 (#505 2026-08-31, #506 2026-09-01).

포인트는 차감되지 않습니다. 5회 호출 동안 1,501,517p 그대로였습니다.

발견 배경

  1. 깃허브에서 바로가기 및 1만 p 뽑기가 안돼요 #506 제보자가 10,000p 뽑기 3회 실패를 보고 → 프론트 코드를 먼저 의심하고 가챠
    플로우 전체를 읽었으나 1연차와 10연차가 같은 함수를 호출하는 것을 확인
  2. 유효한 accessToken으로 API를 직접 호출 → count=10 에서 500 재현
  3. count 를 바꿔가며 재현 → count=1 에서도 동일하게 500

측정

요청 응답 소요
POST /gotchas?count=10 Api-Version 3 500 {"message":"UN HANDLED EXCEPTION"} 10.24s
POST /gotchas?count=10 Api-Version 3 (재시도) 500 동일 10.17s
POST /gotchas?count=2 Api-Version 3 500 동일 10.16s
POST /gotchas?count=1 Api-Version 3 500 동일 10.27s
POST /gotchas?count=10 Api-Version 2 404 {"message":"NOT FOUND"} 0.17s
GET /users (같은 토큰) 200 정상 0.1s

재현 커맨드:

curl -X POST "https://api.gitanimals.org/gotchas?count=1" \
  -H "Authorization: Bearer <token>" \
  -H "Api-Version: 3" \
  -H "Content-Type: application/json" \
  -d '{"count":1}'

원인

서버 내부 예외라 클라이언트에서는 특정 못 했습니다. 네 번 모두 10.16~10.27초에 응답이
온 것으로 보아 내부 호출 하나가 10초 만에 타임아웃되고, 그 예외가 처리되지 않아
500으로 응답하는 것으로 보입니다. 같은 토큰으로 /users 는 정상이므로 인증 문제는 아닙니다.

해결 방향

10초 만에 타임아웃되는 다운스트림을 특정하는 것이 먼저입니다. 그와 별개로 예외를
UN HANDLED EXCEPTION 으로 응답하는 부분은 원인 구분이 가능한 에러 코드로 바꿔주시면
프론트에서 "잠시 후 다시 시도해주세요"와 "포인트가 부족합니다"를 구분해 안내할 수 있습니다.

사용자 영향

현재 뽑기 기능 전체가 동작하지 않습니다. 포인트는 차감되지 않으므로 사용자 손실은 없고,
제보자들에게 그 점을 먼저 안내하면 좋겠습니다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions