문제 해결
자주 발생하는 문제와 해결 방법입니다.
“Can only send testing emails to your own email address”
원인: Resend 무료 플랜의 제약입니다.
해결: Resend 가입 시 사용한 이메일과 동일한 주소로 RECIPIENT_EMAIL을 설정하거나, Resend에서 사용자 도메인을 인증하세요 (Dashboard → Domains → Add Domain → DNS 레코드 추가).
“GEMINI_API_KEY quota: limit 0”
원인: 새로 발급된 Gemini API 키는 활성화에 몇 분이 걸립니다. 일부 키는 결제와 API가 활성화되기 전까지는 동작하지 않을 수 있습니다.
해결: 다음 단계를 순서대로 시도하세요:
- 5–10분 기다리기 — 새 키는 활성화에 시간이 필요한 경우가 있습니다
- Generative Language API 활성화하기 — Google Cloud Console로 이동 → “Generative Language API” 검색 → API 키가 연결된 프로젝트에서 Enable 클릭
- 결제 정보 추가하기 — Google AI Studio로 이동 → Settings → Billing에 결제 정보를 추가하세요. 여전히 무료 플랜을 선택할 수 있습니다 — 결제 정보를 추가하는 것은 키를 활성화하기 위함이며, 무료 한도를 초과하지 않는 한 요금이 청구되지 않습니다
그동안 Richfolio는 자동으로 격차 기반 추천으로 폴백합니다 — 브리핑은 여전히 전달되지만 AI 분석만 빠집니다.
특정 티커에 “fetch failed — internal-error”
원인: Yahoo Finance가 특정 티커(특히 BIPC 같은 덜 일반적인 종목)에서 가끔 문제를 일으킵니다.
해결: 별도의 조치가 필요 없습니다. 해당 티커는 건너뛰어지고 나머지는 정상적으로 진행됩니다. 이는 간헐적인 Yahoo Finance 이슈입니다.
GitHub Actions에 Secret이 비어 보임
원인: Secret을 잘못된 레벨에 추가했습니다.
해결: Secret이 저장소 레벨에 추가되었는지 확인하세요: Settings → Secrets and variables → Actions → Repository secrets. 환경 레벨이 아닙니다.
뉴스가 반환되지 않음
원인: NewsAPI 무료 플랜은 최근 24시간 기사만 반환합니다. 일부 티커(특히 ETF와 소형주)는 뉴스 헤드라인에 거의 등장하지 않습니다.
해결: 이것은 정상 동작입니다. 해당 티커에 대해서는 뉴스 없이 브리핑이 정상적으로 실행됩니다. AI 분석은 추천에서 “최근 뉴스 없음”이라고 명시합니다.
Telegram 메시지가 수신되지 않음
원인: 본인이 봇과 아직 대화를 시작하지 않았습니다.
해결: Telegram을 열고 사용자 이름으로 봇을 찾은 다음 아무 메시지(예: “hi”)를 보내세요. Telegram Bot API는 봇이 메시지를 보내기 전에 사용자가 먼저 연락하도록 요구합니다. 그 다음 Richfolio를 다시 실행하세요.
“Missing config.json” 오류
원인: 프로젝트 루트에 config.json이 존재하지 않습니다.
해결:
- GitHub Actions:
CONFIG_JSON변수가 유효한 JSON 내용으로 존재하는지 확인하세요 (Settings → Secrets and variables → Actions → Variables 탭). - 로컬:
cp config.example.json config.json을 실행하고 포트폴리오 데이터로 편집하세요.
브리핑은 실행되지만 이메일이 비어 있거나 일부 섹션이 누락
원인: 하나 이상의 API 키가 누락되었거나 유효하지 않습니다.
해결: .env 파일(로컬) 또는 GitHub Secret(Actions)을 확인하세요. 브리핑은 사용 가능한 키에 따라 적응합니다:
NEWS_API_KEY없음 → 뉴스 섹션 없음GEMINI_API_KEY없음 → AI 대신 격차 기반 추천TELEGRAM_BOT_TOKEN없음 → 이메일만 (Telegram 없음)
모든 조합이 유효합니다 — 오직 RESEND_API_KEY와 RECIPIENT_EMAIL만 필수입니다.