Skip to content

fix: error-bot PR 생성 파이프라인 수정#21

Merged
Kimgyuilli merged 1 commit into
mainfrom
fix/error-bot-pipeline
Mar 30, 2026
Merged

fix: error-bot PR 생성 파이프라인 수정#21
Kimgyuilli merged 1 commit into
mainfrom
fix/error-bot-pipeline

Conversation

@Kimgyuilli

Copy link
Copy Markdown
Owner

Summary

  • Docker 컨테이너 traceback 경로(/app/app/...)를 프로젝트 상대 경로(backend/app/...)로 정규화하여 스택트레이스 파싱이 정상 동작하도록 수정
  • HTTPException(500+) 발생 시 실제 스택트레이스를 캡처하는 exception handler 등록 (기존에는 "(응답 코드 기반 감지)" 문자열만 전송)
  • 파이프라인 중간 실패(스택트레이스 파싱, 파일 읽기, 내부 오류) 시 Discord 알림 추가

변경 파일

파일 변경 내용
bot/app/config.py container_workdir 설정 추가 (기본값 /app)
bot/app/utils/stack_trace_parser.py _normalize_path() 추가 — Docker/로컬 경로 모두 처리
bot/app/pipeline.py 3곳에 send_failure_alert 추가
backend/app/core/error_reporter.py register_error_handlers() 추가, 미들웨어 Path B 제거
backend/app/main.py register_error_handlers(app) 호출 등록

근본 원인

  1. 500 에러 대부분이 미들웨어의 status_code >= 500 경로로 감지되는데, 이 경로는 스택트레이스 없이 "(응답 코드 기반 감지)"만 전송 → 파이프라인에서 파싱 실패로 종료
  2. Docker 컨테이너 내부 traceback 경로(/app/app/...)에 "backend/app" 문자열이 없어 파싱 0건
  3. 파싱/파일읽기 실패 시 Discord 알림 없이 조용히 종료

Test plan

  • bot 테스트 52개 전체 통과
  • backend ruff 린트 통과
  • Docker/로컬/혼합 경로 정규화 수동 검증 통과
  • 배포 후 실제 500 에러 발생 시 PR 생성 확인

- Docker 컨테이너 traceback 경로(/app/app/...)를 프로젝트 상대 경로로 정규화
- HTTPException(500+) 발생 시 실제 스택트레이스를 캡처하여 error-bot에 전송
- 파이프라인 실패(파싱/파일읽기/내부오류) 시 Discord 알림 추가
@Kimgyuilli
Kimgyuilli merged commit e0d27cf into main Mar 30, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant