"Invalid browser service environment" no Codex: o plugin de navegador preso numa versão antiga
Voltar para o Blog
Artigocodextroubleshootingopenaidev toolswindowsagente de programação

"Invalid browser service environment" no Codex: o plugin de navegador preso numa versão antiga

Mafra8 de novembro de 20267 min de leitura

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 appSnapshot 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\browserA materialização falhou. O runtime confia num arquivo que não está lá
A pasta %USERPROFILE%\.codex\plugins\cache\openai-bundled não existeFalha de provisionamento no Windows, com causa diferente. Ver a seção do cache ausente
Versões iguais e o erro continuaOutra 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.

Fluxo de diagnóstico do erro Invalid browser service environment: ver versão instalada, reinstalar o plugin após atualizar o snapshot e testar o bind
Do erro à verificação: conferir versão, atualizar o snapshot, reinstalar e testar o bind no app.

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.

  1. 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.
  2. Renomeie o snapshot velho como backup. Não apague. Se o processo novo falhar, você volta em um comando.
  3. Copie o marketplace atual do pacote instalado. Localize a pasta do pacote com Get-AppxPackage *codex* | Select InstallLocation e copie app\resources\plugins\openai-bundled para um diretório de staging usando xcopy /G, como no relato original. Antes de substituir o snapshot, confira que cada caminho relativo e cada tamanho de arquivo bate com a origem.
  4. 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?

TentativaPor que não resolve
Apagar plugins\cache\openai-bundledO app recria a mesma versão velha a partir do snapshot desatualizado
Reiniciar o app ou o computadorA versão é decidida na materialização, não na abertura
codex plugin marketplace upgradeAtualiza marketplaces Git. O openai-bundled é snapshot local
Reinstalar o plugin sem atualizar o snapshotReinstala exatamente a geração que já estava lá
Atualizar o appNos 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.

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

Artigos relacionados