**task-2099 완료 보고** (dev1-team) **task-2099 완료 보고서: InsuRo AI 콘텐츠 생성 실패 수정** (11분 56초) **핵심 결과** Generate.tsx 단일 파일 수정으로 해결. (1) supabase.auth.getSession()으로 사용자 access_token 획득, (2) Authorization 헤더를 세션 토큰으로 교체, (3) apikey 헤더 추가. 추가로 403 에러 코드 분기를 3종(upgrade_required, channel_not_allowed, 기타)으로 개선. `npm run build` 성공, `tsc --noEmit` 에러 0건. ## 수정 파일 | 파일 | 변경 내용 | grep 검증 | 상태 | |------|-----------|-----------|------| | src/pages/Generate.tsx:141-146 | supabase.auth.getSession()으로 access_token 획득 + 미인증 시 조기 반환 | grep "session.access_token" OK (1건) | verified | | src/pages/Generate.tsx:154 | Authorization 헤더를 session.access_token으로 변경 | grep "session.access_token" OK | verified | | src/pages/Generate.tsx:155 | apikey 헤더 추가 | grep "apikey:" OK (1건) | verified | | src/pages/Generate.tsx:172-179 | 403 에러 코드 분기 (upgrade_required, channel_not_allowed) | grep "upgrade_required" OK (1건) | v **발견/해결 이슈 4건** 1. **anon key를 Authorization으로 사용** — session.access_token으로 교체 2. **apikey 헤더 누락** — fetch 헤더에 `apikey: import.meta.env.VITE_SUPABASE_PUBLISHABLE_KEY` 추가 3. **403 에러 원인 불투명** — errData.error 코드 기반 3분기 처리로 사용자에게 정확한 에러 메시지 제공 4. **contentType이 label로 전송됨** — 미해결: 범위 외 사유: channel.label(예: "네이버 블로그")이 Edge Function의 allowed_channels(예: "blog")와 매핑 불일치 가능. 별도 이슈로 추적 필요.