Incorrect API key provided 오류 해결, OpenAI API 키가 맞는데도 안 될 때
OpenAI API를 처음 연결할 때 생각보다 자주 보는 문구가 “Incorrect API key provided”입니다. 분명 키를 넣은 것 같은데 계속 틀렸다고 나와서 당황하기 쉽습니다. 그런데 이 오류는 정말 키가 완전히 틀린 경우도 있지만, 오래된 키를 쓰고 있거나 두 개 키가 섞였거나, 환경변수와 코드가 다르게 잡혀 있는 경우도 많습니다.
OpenAI 공식 도움말에서도 이 문제를 해결할 때 단순히 새 키를 다시 발급하는 것보다, 현재 어떤 키가 실제 요청에 들어가고 있는지부터 확인하라고 안내합니다.
가장 먼저 확인할 것
1. 현재 사용하는 API 키가 맞는지 확인
플랫폼의 API Keys 페이지에서 내 키를 확인하고, 오류 메시지에 표시된 키와 비교해 봐야 합니다. OpenAI 도움말에도 예전 키나 잘못된 키가 오류 메시지에 들어갈 수 있으니 다시 확인하라고 나와 있습니다.
2. 서로 다른 키를 섞어 쓰고 있지 않은지 확인
개발용 키, 테스트용 키, 다른 프로젝트 키를 같이 쓰다 보면 코드 한쪽과 환경변수 한쪽이 다를 수 있습니다.
3. 환경변수와 코드 중 무엇이 우선 적용되는지 확인
분명 새 키를 넣었는데 계속 틀렸다면, 실제로는 시스템 환경변수에 남은 예전 키가 적용되는 경우가 있습니다.
실제로 많이 생기는 원인
1. .env 파일은 바꿨는데 서버를 재시작하지 않음
2. 로컬과 배포 서버의 키가 다름
3. 팀원이 준 키와 내 계정 키를 혼용
4. 코드에 하드코딩한 옛날 키가 남아 있음
5. 브라우저나 모바일 앱 같은 클라이언트 환경에 키를 직접 넣음
6. 복사 과정에서 공백이나 줄바꿈이 섞임
API 키가 맞는데도 안 되는 대표 상황
오류 메시지에는 일부 키만 가려서 보여주기 때문에, 내가 보고 있는 키가 실제 요청에 들어간 키와 다를 수 있습니다. 특히 자동화 툴, 서버 환경변수, CI/CD, 호스팅 환경에서는 내가 방금 수정한 키가 아니라 예전 값이 살아 있는 경우가 많습니다.
환경변수 문제를 꼭 봐야 하는 이유
로컬에서는 .env를 수정했는데, PowerShell이나 macOS zsh 환경에 저장된 예전 키가 우선 적용될 수 있습니다. 서버에서도 systemd, Docker, Render, Vercel, Railway 같은 배포 환경에 저장된 키가 따로 있을 수 있습니다.
보안 때문에 절대 하면 안 되는 것
OpenAI 공식 도움말은 브라우저나 모바일 앱 같은 클라이언트 환경에 키를 직접 배포하지 말라고 분명히 안내합니다. 키가 노출되면 다른 사람이 내 비용으로 요청을 보낼 수 있습니다. 요청은 항상 백엔드 서버를 통해 처리하는 편이 맞습니다.
깃허브에 올렸다면 바로 해야 할 일
키를 한 번이라도 공개 저장소나 블로그, 캡처 화면에 노출했다면 그 키는 더 이상 안전하지 않다고 보는 편이 맞습니다. 기존 키를 폐기하고 새 키를 발급받아 환경변수로 다시 설정해야 합니다.
제가 추천하는 해결 순서
1. platform.openai.com/api-keys에서 현재 키 확인
2. 오류 메시지에 표시된 키와 비교
3. 코드에 하드코딩된 키가 없는지 확인
4. .env, 시스템 환경변수, 배포 환경변수까지 모두 점검
5. 프로젝트와 조직이 올바른지 확인
6. 필요하면 기존 키 폐기 후 새 키 발급
7. 새 키를 백엔드 환경변수로만 저장
초보자 기준으로 가장 자주 놓치는 부분
제 기준에서는 “키를 바꿨는데 왜 그대로지?”라는 상황이 제일 많습니다. 대부분은 실제 코드가 새 키를 보는 것이 아니라, 예전 환경변수나 서버 설정에 남은 키를 보고 있기 때문입니다.
안전하게 관리하는 방법
- 키는 환경변수로 저장
- 프론트엔드에 직접 넣지 않기
- 팀원마다 별도 키 사용
- 공개 저장소에 커밋하지 않기
- 노출 의심 시 바로 폐기 후 재발급
Incorrect API key provided 오류는 단순 오타보다, 오래된 키 혼용이나 환경변수 꼬임 때문에 생기는 경우가 더 많습니다. 무조건 새 키만 다시 만드는 것보다, 실제 요청이 어떤 키를 쓰고 있는지부터 확인하는 편이 훨씬 빠릅니다. 그리고 키는 브라우저나 모바일 앱에 직접 넣지 말고, 반드시 백엔드에서만 다루는 쪽이 안전합니다.
참고한 공식 문서
OpenAI Help Center
- Incorrect API key provided
- Best Practices for API Key Safety
- Where do I find my OpenAI API Key?
- Security and API Key Safety
댓글
댓글 쓰기