fix: 다른 사용자 무응답 버그 수정

- getOrCreateUser를 별도 try-catch로 감싸서 DB 오류 시 에러 메시지 전송
- 전체 메시지 처리 로직을 try-catch로 감싸서 모든 오류에 대해 사용자 응답 보장
- 기존: DB 오류 발생 시 webhook handler catch → 500 반환 (사용자 무응답)
- 변경: 오류 발생 시에도 "일시적인 오류" 메시지 전송

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
kappa
2026-01-19 09:45:25 +09:00
parent 2e4886a0a7
commit a1eaae3c04
2 changed files with 63 additions and 29 deletions

View File

@@ -175,6 +175,7 @@ curl https://telegram-summary-bot.kappa-d8e.workers.dev/webhook-info
| Email Worker 파싱 실패 | SMS 형식 변경 | `index.ts`의 정규식 패턴 확인 |
| **AI가 도구 호출 안 함** | 키워드 미인식 | 시스템 프롬프트 + 도구 description에 키워드 추가 |
| **예치금 최소 금액 제한** | Agent 프롬프트 문제 | Deposit Agent 프롬프트 수정 (OpenAI API) |
| **다른 사용자 응답 없음** | DB 작업 try-catch 누락 | `index.ts:handleMessage` 전체 try-catch 적용 (2026-01 수정) |
### 디버깅 명령어
```bash
@@ -242,6 +243,28 @@ Telegram Webhook → Security Validation → Command/Message Router
**AI Fallback:** OpenAI 미설정 시 Workers AI (Llama 3.1 8B) 자동 전환
### 에러 핸들링 구조 (index.ts:handleMessage)
```
Webhook 수신
보안 검증 실패 → 401 반환 (로그 기록)
Rate Limit 초과 → 경고 메시지 전송 + return
사용자 DB 조회/생성 (try-catch)
↓ 실패 시 → "일시적인 오류" 메시지 전송 + return
메시지 처리 (전체 try-catch)
├── 명령어 처리 (handleCommand)
└── AI 응답 생성 (generateAIResponse)
↓ 실패 시 → "메시지 처리 오류" 메시지 전송
응답 전송 (sendMessage)
```
**중요:** 모든 DB 작업과 AI 호출은 try-catch로 감싸서 오류 시에도 사용자에게 메시지 전송
### 동적 도구 로딩
**목적:** 토큰 절약 + AI 선택 정확도 향상