Você pede ao Codex para ler ou controlar o Chrome no Windows. O app abre uma janela em about:blank, não enxerga a página e devolve Invalid browser service environment. Nenhuma aba é lida, nenhuma é controlada, e o mesmo acontece nas duas rotas: o navegador embutido do app e o controle do Chrome instalado.
O erro foi reportado em 05/11/2026 na issue openai/codex #59676, com Windows 11 Pro build 26300, app AppX 26.1029.9216.0 e plugin de navegador em 26.820.60940. Até 08/11/2026 a issue segue aberta, sem correção oficial. O que existe é diagnóstico claro e um caminho que outro relato já destravou.
O que significa "Invalid browser service environment"?
Significa que o processo do navegador carregou um plugin de uma geração que não reconhece o ambiente que o app entregou. É incompatibilidade de versão entre o runtime do Codex e o plugin, não falta de permissão nem extensão do Chrome desatualizada.
No relato de #59676, a exceção nasce em browser-service.mjs, dentro da função setup(), que rejeita qualquer valor de ambiente que a geração carregada do plugin não conheça. Na mesma máquina, o runtime do app estava em 26.1029.70936, o plugin do Chrome estava em 26.1029.70936 e o plugin de navegador ficou preso em 26.820.60940, uma build de agosto.
Por que apagar o cache do plugin não resolve?
Porque o cache é consequência, não causa. O app rematerializa o plugin a partir do snapshot do marketplace empacotado, e é esse snapshot que está velho.
O relato é explícito: depois de apagar o cache, o Codex recria o mesmo 26.820.60940. Enquanto o marketplace ativo estiver desatualizado, limpar a pasta só repete a instalação da geração errada.
Como confirmar a divergência de versão?
Com dois comandos e uma conferência de arquivo. O primeiro mostra os marketplaces que o Codex está considerando; o segundo, o que está instalado de fato.
codex plugin marketplace list --json
codex plugin list --marketplace openai-bundled --json
No segundo comando, procure a entrada browser e olhe os campos version e installedPath. O marketplace que interessa chama openai-bundled, e ele não é Git: é um snapshot local, então codex plugin marketplace upgrade não mexe nele.
A comparação que fecha o diagnóstico é entre a versão do plugin de navegador e a versão do app. No relato de #59676, o plugin ficou em 26.820.60940 enquanto o runtime já estava em 26.1029.70936.
Depois abra %USERPROFILE%\.codex\config.toml e localize a linha NODE_REPL_TRUSTED_SERVICES. Ela é um JSON que aponta para o arquivo que o runtime confia, e o caminho carrega a versão dentro:
NODE_REPL_TRUSTED_SERVICES = '{"browser":"C:/Users/<voce>/.codex/plugins/cache/openai-bundled/browser/26.820.60940/scripts/browser-service.mjs","sky":"@oai/sky/service"}'
Repare que nesse caso o caminho está coerente com o plugin instalado, e o erro acontece mesmo assim. Ou seja, o problema não é o caminho apontar para outra versão: é o plugin instalado ser uma geração que o app atual não reconhece. O que vale checar no caminho é se ele existe de fato. A tabela abaixo resume o que cada leitura significa.
| O que você vê | O que significa |
|---|---|
codex plugin list mostra browser numa versão mais antiga que a do app | Snapshot do marketplace velho. O plugin certo existe no pacote instalado, mas não é o que foi materializado |
O caminho do NODE_REPL_TRUSTED_SERVICES aponta para uma versão que não existe em plugins\cache\openai-bundled\browser | A materialização falhou. O runtime confia num arquivo que não está lá |
A pasta %USERPROFILE%\.codex\plugins\cache\openai-bundled não existe | Falha de provisionamento no Windows, com causa diferente. Ver a seção do cache ausente |
| Versões iguais e o erro continua | Outra falha. Vale abrir issue com as duas versões e o log do app |
Se quiser um diagnóstico mais amplo, codex doctor --json devolve os checks em formato de máquina, incluindo avisos de plugin no start. Ele não compara versões por você, mas mostra rápido se o plugin sequer carregou.
Qual correção destrava o plugin?
Não existe correção oficial até 08/11/2026. O que existe é um procedimento que um usuário testou e documentou em outra issue do mesmo mecanismo, a #47443. Lá o sintoma era módulo ausente; aqui é ambiente inválido. A causa é a mesma: o snapshot do marketplace ficou para trás em relação ao pacote instalado.
Aviso antes de começar: é cirurgia manual em pasta de cache e em arquivos do pacote do Windows. Faça backup, rode com o app fechado e trate como procedimento de última instância. O relato de #47443 registra que nenhum arquivo do pacote nem configuração de segurança do Windows foi alterado no processo.
- Feche o app do Codex e localize o snapshot atual. O caminho fica em
codex plugin marketplace list --json, normalmente%USERPROFILE%\.codex\.tmp\bundled-marketplaces\openai-bundled. - Renomeie o snapshot velho como backup. Não apague. Se o processo novo falhar, você volta em um comando.
- Copie o marketplace atual do pacote instalado. Localize a pasta do pacote com
Get-AppxPackage *codex* | Select InstallLocatione copieapp\resources\plugins\openai-bundledpara um diretório de staging usandoxcopy /G, como no relato original. Antes de substituir o snapshot, confira que cada caminho relativo e cada tamanho de arquivo bate com a origem. - Reinstale o plugin pelo comando suportado. Ele instala a versão do snapshot para o cache esperado e devolve a versão final no JSON.
codex plugin add browser@openai-bundled --json
Confira no retorno os campos version e installedPath. O caminho deve bater com o que aparece no NODE_REPL_TRUSTED_SERVICES. Se o comando disser que o plugin já está instalado, remova antes e adicione de novo:
codex plugin remove browser@openai-bundled --json
codex plugin add browser@openai-bundled --json
Abra o app e peça ao agente para rodar await agent.browsers.list(). A lista precisa trazer o backend do navegador que você usa. No relato de #47443, o teste equivalente com agent.browsers.get("edge") voltou com a documentação do backend e as abas abertas, o que confirmou o bind.
E se a pasta do cache nem existir?
Aí o problema é outro, embora o sintoma pareça o mesmo. Na #46744, o config.toml apontava para plugins\cache\openai-bundled\browser\<versao>\scripts\browser-service.mjs e a pasta não era criada de jeito nenhum. Os arquivos do pacote AppX estão marcados como protegidos, e a cópia que o app tenta fazer para materializar o plugin falha, deixando para trás diretórios openai-bundled.staging-* incompletos.
Nesse caso, reinstalar plugin não resolve, porque o plugin nunca chega ao cache. O caminho é provisionar o cache do mesmo jeito que o procedimento acima, copiando do pacote instalado, ou esperar a correção oficial. A issue também cita Browser, Computer Use e geração de imagem fora do ar pela mesma falha de materialização.
O que não vale a pena tentar?
| Tentativa | Por que não resolve |
|---|---|
Apagar plugins\cache\openai-bundled | O app recria a mesma versão velha a partir do snapshot desatualizado |
| Reiniciar o app ou o computador | A versão é decidida na materialização, não na abertura |
codex plugin marketplace upgrade | Atualiza marketplaces Git. O openai-bundled é snapshot local |
| Reinstalar o plugin sem atualizar o snapshot | Reinstala exatamente a geração que já estava lá |
| Atualizar o app | Nos relatos de #46744 a falha continuou em versões seguintes |
Como continuar trabalhando sem o navegador do app?
Separe as tarefas que precisam de navegador das que não precisam. Refatoração, teste, build, leitura de repositório e escrita de código não dependem do plugin de navegador e seguem normais no terminal. Para o que precisa de navegador, um MCP de automação no agente de terminal evita o caminho de provisionamento do app desktop.
Se o seu problema é depender de um plugin de navegador que o app desktop insiste em materializar na versão errada, o agente de terminal elimina essa etapa: não existe marketplace de plugin para materializar. A Verboo Code roda no terminal com tokens ilimitados, então testar a correção de novo não consome cota.



