# Coldmail Workflow LangGraph 테스트

**날짜**: 2025-10-15
**작성자**: Claude
**관련 파일**:
- `rb8001/app/services/workflows/coldmail_workflow.py`
- `rb8001/app/services/coldmail_processor.py:73`
- `rb8001/.env:43,98-99,139`

---

## 문제 1: Docker 빌드 타임아웃

**증상**: `pip is looking at multiple versions of langchain-openai...`

**해결**: requirements.txt:20,40-42 버전 고정
- openai>=1.110.0
- langchain==0.3.27
- langchain-openai==0.3.35
- langgraph==0.6.10

---

## 문제 2: PDF 업로드 중복 에러

**증상**: `400 - File already exists for this team`

**원인**: team_document 테이블에 file_hash 중복

**해결**: 51123 PostgreSQL 직접 접속하여 삭제
```bash
ssh -i ~/.ssh/id_rsa_deploy -p 51123 admin@192.168.0.100 \
  "PGPASSWORD=robeings psql -h localhost -U robeings -d main_db -c \
  \"DELETE FROM team_document WHERE id IN (...);\""
```

---

## 문제 3: Slack 401 Unauthorized

**증상**: `Failed to upload file/create list item: 401`

**원인 1**: 토큰 워크스페이스 불일치
- List F09J1HPPQJG는 Robeing (T0925SXPS4D)
- .env:98 SLACK_BOT_TOKEN은 Company-X

**해결 1**: .env:98 Robeing 토큰으로 변경

**원인 2**: .env:43 SKILL_SLACK_API_KEY 누락

**해결 2**: SKILL_SLACK_API_KEY=skill-slack-api-key-2025 추가

**재시작**: `docker compose down && docker compose up -d`

---

## 검증 결과

**성공**:
- LangGraph 워크플로우 정상 동작
- Lists API 통합 (테스트 아이템 Rec09LJQYLAH2)

---

## 교훈

### 테스트 환경
- List ID와 SLACK_BOT_TOKEN 워크스페이스 일치 확인
- 필수 환경변수 체크리스트 (SKILL_SLACK_API_KEY)
- 테스트 전 DB 중복 데이터 정리

### 배포
- .env 수정 후 `docker compose down && up -d` (restart 불가)

---

## 남은 작업

IR 분석 실패 원인 및 해결 방안: `251015_claude_coldmail_ir_analysis_failure.md` 참고
