Codex "401 Unauthorized: Incorrect API key provided": é sua chave ou é a OpenAI?
Voltar para o Blog
Artigocodexopenaitroubleshootingverboo codedev tools

Codex "401 Unauthorized: Incorrect API key provided": é sua chave ou é a OpenAI?

Mafra29 de setembro de 20266 min de leitura

O Codex estava funcionando, você não mexeu em nada, e de repente toda mensagem volta com unexpected status 401 Unauthorized: Incorrect API key provided. Pior: você nem usa API key, entrou com a conta do ChatGPT. Esse erro tem três causas bem diferentes, e só uma delas se resolve na sua máquina. O jeito mais rápido de separar é olhar o pedaço da chave que aparece mascarado na própria mensagem.

O que significa o 401 "Incorrect API key provided" no Codex?

Significa que o servidor da OpenAI recusou a credencial que chegou junto com o pedido. A mensagem completa costuma ser esta:

unexpected status 401 Unauthorized: Incorrect API key provided: sk-svcac***...fvMA.
You can find your API key at https://platform.openai.com/account/api-keys.,
url: https://chatgpt.com/backend-api/codex/responses

O detalhe que decide tudo é a chave mascarada depois de provided:. Ela diz qual credencial foi recusada. Se não é uma chave sua, o problema não está no seu computador, e trocar senha, deslogar ou apagar configuração não vai adiantar.

Como saber em 30 segundos se o problema é seu ou da OpenAI?

Compare o sufixo da chave mascarada com o que o Codex acha que está usando. Dois comandos resolvem:

codex login status
env | grep -E '^(CODEX|OPENAI)_'

O primeiro imprime Logged in using ChatGPT ou Logged in using an API key - sk-proj-***abcde (os 8 primeiros e os 5 últimos caracteres da chave salva). O segundo mostra se existe alguma chave exportada no seu shell. Com isso na mão, a tabela abaixo aponta o caso:

O que você vêCausaO que fazer
Chave começa com sk-svcac e o status diz Logged in using ChatGPTFalha do lado da OpenAIConferir status.openai.com e esperar
Só o codex exec falha, o codex interativo funcionaCODEX_API_KEY exportada no shellunset CODEX_API_KEY
O sufixo da chave recusada bate com o da sua chave salvaChave revogada ou apagada no painelcodex logout e login de novo
Fluxograma do erro 401 Incorrect API key no Codex: chave sk-svcac indica falha da OpenAI, falha só no codex exec indica CODEX_API_KEY no ambiente, sufixo da sua chave indica chave revogada, e codex doctor --json como diagnóstico final
Os três casos do 401 no Codex e o comando de cada um.

A chave recusada começa com sk-svcac: o que aconteceu?

É uma chave de serviço da própria OpenAI, não sua. Foi o que aconteceu em 25/09/2026: de cerca de 22:40 até 23:54 UTC (19:40 a 20:54 em Brasília), toda chamada ao Codex de quem entrava com ChatGPT voltava com o mesmo sk-svcac…fvMA, no Mac, no Windows e no Linux. A OpenAI registrou o incidente como "Issues with Codex" no status oficial, afetando Codex Web, CLI, extensão de VS Code e API, e declarou tudo recuperado às 23:54.

Na issue #48237, com mais de 90 comentários, dezenas de pessoas confirmaram que nada local resolvia: codex logout seguido de login, CODEX_HOME limpo, reinstalar o app, girar a chave. Um usuário mostrou que o próprio token OAuth funcionava em GET /backend-api/codex/models e só falhava no POST /backend-api/codex/responses. A credencial recusada era trocada no servidor.

O que fazer nesse caso:

  1. Abra status.openai.com. Se tem incidente de Codex aberto, é isso.
  2. Não gire nem apague sua chave: ela não é a chave da mensagem.
  3. Se não dá pra esperar, a saída que a própria OpenAI publicou durante o incidente foi entrar por API key, que cobra por token na conta da plataforma, fora do plano do ChatGPT:
printenv OPENAI_API_KEY | codex login --with-api-key

Quando o incidente fechar, volte pro login normal com codex logout e codex login, senão você continua pagando por token sem perceber.

Só o codex exec dá 401 e o codex interativo funciona: por quê?

Porque existe uma CODEX_API_KEY no seu ambiente, e o codex exec dá prioridade a ela sobre o login do ChatGPT. Isso está no código-fonte do Codex (codex-rs/login/src/auth/manager.rs), com o comentário literal "API key via env var takes precedence over any other auth method". O codex exec liga essa leitura; o codex interativo e o codex login status não.

O efeito prático é traiçoeiro: codex login status responde Logged in using ChatGPT, o terminal interativo funciona, e o seu script de CI ou o seu alias com codex exec quebra com 401 usando uma chave velha que ficou num .bashrc, num .env ou num secret do pipeline.

# descobrir se a variável está setada
env | grep -E '^(CODEX|OPENAI)_'

# tirar da sessão atual
unset CODEX_API_KEY

# testar de novo
codex exec "Responda só: OK"

Se o teste passa, procure onde a variável é exportada (grep -rn CODEX_API_KEY ~/.bashrc ~/.zshrc ~/.profile) e remova ou troque pela chave atual.

O sufixo é da sua própria chave: como resolver?

Aí a chave salva no Codex foi revogada, apagada ou pertence a um projeto sem acesso. Acontece com quem fez codex login --with-api-key meses atrás e depois limpou chaves no painel da plataforma. O codex login status mostra o final da chave salva, então dá pra comparar direto com o sufixo da mensagem de erro.

codex logout
codex login                       # volta pro login com ChatGPT
# ou, se quer continuar por API key:
printenv OPENAI_API_KEY | codex login --with-api-key

O --with-api-key lê a chave pela entrada padrão, não como argumento. Se você digitar codex login --with-api-key sozinho no terminal, ele avisa que espera a chave por pipe.

E se nenhum dos três casos bater?

Rode o diagnóstico local e guarde a saída:

codex doctor --json

Ele mostra o modo de autenticação salvo (stored auth mode), se existe chave ou token do ChatGPT guardado (stored API key, stored ChatGPT tokens) e se OPENAI_API_KEY ou CODEX_API_KEY estão presentes no ambiente, sem vazar o valor. Com isso dá pra abrir issue sem expor segredo.

Vale saber: mesmo depois de a OpenAI declarar o incidente de 25/09 resolvido, apareceram relatos isolados do mesmo sk-svcac na issue #48237, um em 26/09 na extensão de VS Code depois de bater o limite de uso e outro em 28/09 num Raspberry Pi com o CLI 0.158.0. Até 29/09/2026 nenhum mantenedor tinha respondido a esses dois. Se é o seu caso, anexe o codex doctor --json na issue aberta em vez de criar uma nova.

Quando o 401 vem do servidor, nada na sua máquina resolve, e a hora parada é a mesma pra todo mundo. O que muda o prejuízo é ter um segundo agente de programação pronto no terminal. A Verboo Code roda no terminal com tokens ilimitados e segura o trabalho enquanto o provedor principal volta.

Gostou deste artigo?
Compartilhe conhecimento com sua rede.
// Leia também

Artigos relacionados