DOCS/journey/troubleshooting/251015_slack_user_403_team_mapping.md
Claude-51124 22557e7132 docs: 오래된 트러블슈팅 아카이브 및 구조 정리
- 7-8월 초기 구축 문서 12개를 _archive/troubleshooting/2025_07-08_initial_setup/로 이동
- book/300_architecture/390_human_in_the_loop_intent_learning.md를 journey/research/intent_classification/로 이동 (개발 여정 문서)
- 빈 폴더 제거 (journey/assets/*)
2025-11-17 14:06:05 +09:00

1.5 KiB

Slack 사용자 403 Forbidden - team 매핑 불일치

날짜: 2025-10-15 작성자: Claude 관련 파일: robeing-gateway/app/database.py:353-380


문제 상황

증상: Slack 사용자 U09BQSLB11R, U09DWLARFQQ 메시지 → 403 Forbidden

로그:

WARNING - No UUID found for Slack user U09BQSLB11R
ERROR - User not registered: team_id=T09C98KB933, slack_user_id=U09BQSLB11R

빈도: 12건 (10/14 11:53~15:38)


원인

database.py:363-369: slack_user_to_uuid() JOIN 실패

SELECT u.id FROM "user" u
JOIN team t ON u.team_id = t.id
JOIN slack_workspace sw ON t.id = sw.team_id  -- 실패 지점
WHERE sw.slack_team_id = :team_id

DB 상태:

  • slack_workspace.team_id: 79441171... (Company-X)
  • 사용자 team_id: 38bdc27d... (Robeing) ← 불일치

결과: JOIN 실패 → UUID 변환 실패 → 403


해결

사용자 팀 변경

UPDATE "user" SET team_id = '79441171-3951-4870-beb8-916d07fe8be5'
WHERE email IN ('hykim@sigong-ip.com', 'iskang@sigong-ip.com');

검증

curl -X POST http://localhost:8100/slack/events \
  -d '{"team_id":"T09C98KB933","event":{"user":"U09BQSLB11R"}}'
# 200 OK, UUID 변환 성공

교훈

Slack OAuth 설치 시

  • user 테이블에 oauth_providers 추가만으로 불충분
  • slack_workspace와 user.team_id 일치 검증 필요
  • 팀 이동 시 Slack 매핑 재확인 필수

예방책

  • Slack 설치 시 team_id 검증 로직 추가
  • 관리 대시보드에서 팀-워크스페이스 매핑 시각화