> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Erros de rede e de aplicativos

> Respostas aos erros comuns em aplicativos implantados—403 Proibido, Aplicativo falhou ao responder, CORS, 502 Bad Gateway e problemas de requisições de saída.

Estas respostas abrangem erros que você pode encontrar em um aplicativo implantado. Para uma solução de problemas mais ampla, veja [Solução de problemas de implantações](/build/troubleshooting).

<AccordionGroup>
  <Accordion title="Meu aplicativo implantado está retornando erros 403 Proibido—como corrijo?">
    Um 403 em um aplicativo implantado geralmente vem de um destes casos:

    * **Cabeçalhos de requisição muito grandes**—muitos cookies podem fazer os cabeçalhos grandes o suficiente para serem rejeitados na borda. Limpe os cookies do seu navegador para o domínio e teste novamente.
    * **Autenticação ausente**—a requisição não inclui um token de login ou sessão necessário.
    * **Uma restrição de acesso**—seu aplicativo pode estar configurado para bloquear algum tráfego. Veja [implantações privadas](/references/publishing/private-deployments) e [tokens de acesso externo](/references/deployment-customization/external-access-tokens).

    Para um diagnóstico detalhado, cole seus logs de implantação em um novo chat do Agent.
  </Accordion>

  <Accordion title="Meu aplicativo mostra &#x22;Application failed to respond&#x22;—o que isso significa?">
    O processo do seu aplicativo não está escutando na porta que o Replit espera. O Replit passa a porta correta através da variável de ambiente `PORT`, portanto vincule a ela em vez de um valor codificado:

    ```js theme={null}
    const PORT = process.env.PORT || 3000;
    ```

    ```python theme={null}
    port = int(os.environ.get("PORT", 3000))
    ```

    Seu aplicativo também pode ter travado antes de fazer o bind—verifique seus logs de implantação em busca de erros de inicialização. Com [implantações Autoscale](/references/publishing/autoscale-deployments), a primeira requisição após um período quieto pode levar alguns segundos (uma inicialização a frio), o que é normal.
  </Accordion>

  <Accordion title="Como corrijo erros de CORS no meu aplicativo Replit implantado?">
    Um erro de CORS significa que seu frontend e backend estão em origens diferentes e o backend não foi configurado para permitir isso. Se fizerem parte do mesmo aplicativo, use URLs relativas como `/api/endpoint` para evitar CORS completamente.

    Caso contrário, configure seu backend para permitir a origem do seu frontend. Para Express, por exemplo:

    ```js theme={null}
    const cors = require("cors");
    app.use(cors({ origin: "https://seu-frontend.replit.app" }));
    ```

    Permita apenas as origens específicas de que você precisa antes de implantar. Veja [Solução de problemas de implantações](/build/troubleshooting).
  </Accordion>

  <Accordion title="Meu aplicativo funciona localmente, mas retorna erros de rede quando implantado">
    Aplicativos implantados falham quando o ambiente de produção difere da sua configuração local. Verifique três coisas:

    1. **URLs de localhost codificadas**—substitua `localhost:3000` ou `127.0.0.1` por caminhos relativos ou URLs baseadas em ambiente, depois reimplante.
    2. **Secrets de produção ausentes**—confirme que cada chave necessária está definida nos seus secrets de implantação. Veja [Secrets](/core-concepts/project-editor/app-setup/secrets).
    3. **Migrações não executadas em produção**—execute as migrações pendentes no banco de dados de produção antes de implantar.

    Se os erros continuarem, [entre em contato com o Suporte do Replit](https://replit.com/support) com sua mensagem de erro e as etapas que tentou.
  </Accordion>

  <Accordion title="Como depuro um erro 502 Bad Gateway no meu aplicativo implantado?">
    Um 502 geralmente significa que seu processo de aplicativo travou ou retornou uma saída que o servidor não conseguiu usar. Verifique seus logs de implantação em busca de erros de travamento logo antes dos 502s aparecerem—rejeições de promise não tratadas e exceções não capturadas podem travar um processo Node.js silenciosamente.

    Adicione um manipulador para expor travamentos:

    ```js theme={null}
    process.on("uncaughtException", (err) => console.error("Uncaught:", err));
    ```

    Assim que puder ver o erro subjacente nos seus logs, cole-o em um novo chat do Agent para ajuda na correção.
  </Accordion>

  <Accordion title="Meu aplicativo não consegue fazer requisições a APIs externas—o que devo verificar?">
    Primeiro confirme se a requisição está sendo bloqueada em vez de falhar no seu código. Abra seus logs de implantação e procure mensagens sobre requisições de saída bloqueadas ou redirecionadas.

    Causas e correções comuns:

    * **URLs de auto-referência**—se seu backend chama sua própria URL pública (como `fetch("https://meuapp.replit.app/api/...")`), use um caminho relativo como `fetch("/api/...")`.
    * **Requisições durante a fase de build**—faça chamadas de saída em tempo de execução, não durante o build.
    * **Restrições de rede**—em uma rede corporativa ou escolar, conexões de saída podem ser bloqueadas; verifique com o administrador da sua rede.

    Se nenhum desses casos se aplicar e as requisições ainda estiverem bloqueadas, [entre em contato com o Suporte do Replit](https://replit.com/support) com as linhas de log relevantes.
  </Accordion>

  <Accordion title="A URL do meu aplicativo mudou após republicar—posso recuperar meu subdomínio antigo?">
    O subdomínio `.replit.app` é derivado do nome do seu projeto e não é garantido que permaneça o mesmo quando você cancela a publicação e republica, especialmente se o projeto foi renomeado.

    A solução permanente é um [domínio personalizado](/references/publishing/custom-domains), que permanece o mesmo entre reimplantações. Para tentar restaurar o subdomínio antigo, certifique-se de que o nome do seu projeto corresponde ao original (renomeie-o de volta se necessário) e republique—o Replit não pode reatribuir manualmente um subdomínio liberado. Veja [Geografia de publicação](/references/publishing/publishing-geography).
  </Accordion>
</AccordionGroup>

## Ainda precisa de ajuda?

Se seu erro não estiver coberto aqui, [entre em contato com o Suporte do Replit](https://replit.com/support).
