Skip to content

서버 조회 실패가 로그아웃·빈 목록·OFF 기본값으로 위장 — 오류·재시도 상태 미결선 #708

Closed

Description

@1hyok

📜 Overview (Required)

설정의 서버 연동 화면들이 조회·저장 실패를 오류로 표시하지 않고 정상값처럼 보여준다. develop 20d7d10d debug APK를 Pixel 7 API 35에서 오프라인·무응답으로 실측했다.

  • 설정 메인 GET users/me 실패: 오류 문구를 버리고 로그아웃 버튼만 남긴다. 재시도와 모든 하위 설정 진입점이 함께 사라진다.
  • 프로필 수정: 초기 조회 실패는 빈 화면이며 Retry가 없다. PATCH 실패 이벤트도 화면이 Unit으로 소비해 무음이다.
  • 연결 계정: isLoading·errorMessage를 화면이 읽지 않아 GET 실패는 빈 목록, POST/DELETE 실패는 변화 없는 화면으로 끝난다.
  • 푸시 설정 초기 GET 실패: 상태 기본값인 전체 OFF를 서버 설정처럼 표시한다.
  • 수신자 목록 GET 예외: 오류 상태로 변환되지 않고 초기 빈 목록만 남는다.

정상 빈 값과 실패 상태를 분리하고, 조회 실패 시 편집을 막은 채 오류 문구와 재시도를 제공해야 한다. 프로필·연결 계정 저장 실패도 사용자에게 명시해야 한다.

실측 화면

  • 설정 메인 조회 실패 — 로그아웃만 표시

    설정 메인 조회 실패 시 로그아웃만 표시

  • 프로필 초기 조회 실패 — 빈 화면

    프로필 초기 조회 실패 시 빈 화면

  • 연결 계정 조회 실패 — 계정 행 전체 소실

    연결 계정 조회 실패 시 계정 행 전체 소실

  • 푸시 설정 조회 실패 — 전체 OFF로 표시

    푸시 설정 조회 실패 시 전체 OFF 표시

📌 Child Issue(Optional)

No response

📍 Note (Optional)

  • #558의 푸시 PATCH 실패와 #568의 전달조건 PATCH 실패는 이 이슈에서 제외한다.
  • #556은 실제 0건·검색 결과 0건, #703은 재진입 갱신 문제로 서버 실패 상태와 별개다.
  • 시안 미대조 — 디자인 대조가 아니라 서버 상태를 정상값으로 오표시하고 복구 수단이 없는 동작 결함으로 판정했다.

재작성 없이 통합하는 순서

#1502 / #1967의 UiState·MVI 계약이 선행입니다. #1925에서 오류·재시도와 함께 수정하는 SettingViewModel도 최종 MVI로 전환하고 프로필·로그아웃·탈퇴를 단일 UiState로 합칩니다. #1805가 이 소비처를 다시 전환하는 범위는 제거합니다. 현재 선행 관계는 #1695 → #1502 → #708 → #1920이며 실제 PR base도 일치합니다.

Activity

  1. added
    bugSomething isn't working
    on Aug 3, 2026
  2. added theissue type on Aug 3, 2026
  3. 1hyok commented on Aug 24, 2026

    @1hyok
    CollaboratorAuthor

    재현 확인 (develop 4e0a648eb, 2026-08-25 04:27 KST)

    설정 진입 → GET /api/v1/users/me 실패 → 스피너가 사라지고 "로그아웃" 항목 하나만 남은 화면이 됩니다. 오류 안내도, 재시도 수단도, 나머지 설정 메뉴도 없습니다.

    같은 실패 조건에서 홈·노트는 "…불러오지 못했습니다." + "다시 시도" 를 정상 노출합니다.

    부수 확인 — 설정 진입 시 users/me 가 0.8초 간격으로 2회 호출됩니다(04:26:21.786, 04:26:22.556). 중복 호출은 #966 과 같은 성격입니다.

    이 상태 때문에 2차 QA 잔여 중 설정 항목(#560 마케팅 수신 저장, #564 고객지원 6종, #572 앱 잠금 PIN, #574 패스키)은 화면 도달 자체가 막혀 이번 회차에서 검증하지 못했습니다.

  4. changed the title [-]fix(setting): 서버 조회 실패가 로그아웃·빈 목록·OFF 기본값으로 위장 — 오류·재시도 상태 미결선[/-] [+]서버 조회 실패가 로그아웃·빈 목록·OFF 기본값으로 위장 — 오류·재시도 상태 미결선[/+] on Aug 28, 2026
  5. added and removed on Aug 28, 2026
  6. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 5, 2026
  7. assigned and unassigned on Sep 6, 2026
  8. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 18, 2026
  9. 1hyok commented on Oct 1, 2026

    @1hyok
    CollaboratorAuthor

    2026-10-01 KST 당시 빌드 5806b3a88(develop 7e8209f07 + #2152 등)에서 확인한 QA 기록을 추가한다. 이 빌드에서는 프로필 저장 실패 안내가 없었다. 최신 빌드 재현 결과는 아니다.

    #2152 로 생기는 사진 저장도 같은 UpdateFailure -> Unit 분기를 탄다. 비행기 모드에서 사진을 고르고 수정하기를 눌러도 화면에 그대로 머문다. 이 이슈를 고칠 때 사진 저장 실패도 같이 덮여야 한다.

    왼쪽은 이름만 바꾼 저장, 오른쪽은 사진을 바꾼 저장이다. 둘 다 비행기 모드에서 수정하기를 누른 직후다. 이메일은 가렸다.

    오프라인 이름 및 사진 저장 실패 직후 안내 없는 화면

  10. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 1, 2026
  11. github-actions commented on Oct 1, 2026

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #2231 다 (base fix/2223-profile-phone).

    base 가 기본 브랜치(develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에
    아무것도 표시하지 않는다. 본문에 Closes #N 이 있어도 마찬가지다 — 그 링크는 기본 브랜치를
    target 하는 PR 에서만 만들어진다.

    PR 이 닫히거나 머지되면 이 이슈의 pr-open 라벨은 다음 리컨사일에서 떨어진다.

  12. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:setting설정 기능 영역bugSomething isn't working

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions