---
title: "Corrija o erro de script que esconde a mensagem, o arquivo e a linha"
description: "Script error. com linha 0 e sem stack trace significa que o navegador escondeu um erro de um script de outra origem. Adicione crossorigin e um cabeçalho CORS para recuperar a mensagem."
canonical: "https://logbrew.co/pt-BR/errors/script-error"
last_updated: "2026-11-10"
---

# Corrija o erro de script que esconde a mensagem, o arquivo e a linha

`Script error.` com linha 0 e sem stack trace significa que o navegador escondeu um erro de um script de outra origem. Adicione `crossorigin` e um cabeçalho CORS para recuperar a mensagem.

Testado em 10 de novembro de 2026 com Chromium 152, @logbrew/browser 0.1.21 e @logbrew/sdk 0.1.44

Por [Furkan Erday](https://github.com/furkanerday). Furkan Erday é o fundador do LogBrew. Ele desenvolve o LogBrew com Claude Code e Codex todos os dias.

Canonical: https://logbrew.co/pt-BR/errors/script-error

## O que a página recebe de um script que lança um erro

| Como o script carrega | Script rodou | Detalhes do erro |
| --- | --- | --- |
| Da própria origem da página | Rodou | Completo |
| De outra origem | Rodou | `Script error.` |
| Outra origem, `crossorigin` e o cabeçalho CORS | Rodou | Completo |
| Outra origem, `crossorigin` e sem cabeçalho | Bloqueado | Nenhum |

1 script, carregado de 4 formas. Completo significa a mensagem, o arquivo, a linha 1, a coluna 7 e o stack trace, lidos no evento `error` em `window`.

## Recupere o erro completo

### Carregue o script com o atributo crossorigin

O atributo diz ao navegador para buscar o arquivo com CORS. Quando o servidor permite, o navegador passa a mensagem real, o arquivo, a linha e o stack trace para os listeners de erro da página.

```bash
<script src="https://cdn.example.com/app.js" crossorigin="anonymous"></script>
```

### Envie o cabeçalho CORS do servidor do arquivo

O servidor que hospeda o script precisa responder com `Access-Control-Allow-Origin` definido como a origem da sua página, ou `*` para um arquivo público. No nosso teste, só o cabeçalho já transformou `Script error.` na mensagem completa.

```bash
Access-Control-Allow-Origin: *
```

### Confira se o arquivo ainda carrega

Com `crossorigin` definido e sem cabeçalho, o navegador bloqueia o arquivo e o script nunca roda. O console então mostra `blocked by CORS policy` e `net::ERR_FAILED`, e o elemento `script` dispara o evento `error`.

Saída

```text
Access to script at 'http://127.0.0.1:4874/plain/throws.js?scenario=script-cross-origin-attr-no-header' from origin 'http://127.0.0.1:4873' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Failed to load resource: net::ERR_FAILED
```

### Ou sirva o script da sua própria origem

Um script da própria origem da página nunca silencia os erros. Inclua o arquivo no bundle do seu app, ou sirva o arquivo pelo seu domínio como proxy, e nenhum cabeçalho é necessário.

## Lide com os erros silenciados que ainda chegam

### Conte os erros, depois ache o script

`Script error.` não traz nada para corrigir. Cada um significa que um script de outra origem lançou um erro. Ache as tags sem `crossorigin` e comece pelas que carregam em toda página.

### Leia a mensagem real no console

O navegador imprime o erro completo no console mesmo quando o silencia para os seus listeners. No nosso teste, o console mostrou `Uncaught Error: Keg is empty` enquanto `window.onerror` recebeu `Script error.`.

### Decida o que fazer com tags de terceiros

Um widget de chat ou uma tag de analytics sem cabeçalho CORS deixa 2 opções. Mantenha como está e aceite os erros silenciados, ou adicione `crossorigin` para que um cabeçalho ausente bloqueie a tag e apareça como falha de carregamento.

## O que vimos no teste

Colocamos 1 script que lança um erro, `throw new Error("Keg is empty: no beer left for order 42");`, em 2 servidores locais. A página rodou em `http://127.0.0.1:4873` no Chromium 152 com o `@logbrew/browser` 0.1.21 instalado, e um segundo servidor em `http://127.0.0.1:4874` fez o papel da CDN. Carregamos o script de 4 formas e lemos o evento `error` em `window` em cada uma.

Da própria origem da página, o evento trouxe `Uncaught Error: Keg is empty: no beer left for order 42`, o arquivo `/throws.js`, a linha 1, a coluna 7 e um objeto `Error` com stack trace. Da outra origem sem `crossorigin`, o evento trouxe `Script error.`, um nome de arquivo vazio, linha 0, coluna 0 e nenhum objeto `Error`. O console ainda imprimiu a mensagem completa.

Com `crossorigin="anonymous"` e `Access-Control-Allow-Origin: *` na CDN, o evento trouxe os detalhes completos de novo. Com o atributo e sem cabeçalho, o navegador bloqueou o arquivo, o script nunca rodou e o elemento `script` disparou o evento `error`.

## Por que o navegador esconde a mensagem

O HTML Standard silencia erros de scripts que a página buscou entre origens sem CORS. O algoritmo marca os erros como silenciados quando a resposta foi CORS-cross-origin, e então reporta o erro como `Script error.`, sem URL, com linha 0, coluna 0 e sem objeto de erro.

O navegador trata o texto do erro de um script de outra origem como dado desse script, então a página não recebe nada dele. A página do MDN sobre `crossorigin` diz o mesmo em 1 linha. O acesso aos erros por `window.onerror` é limitado para esses scripts.

A whatwg/html#2440 pediu uma forma de obter os detalhes sem CORS. Ela foi fechada em julho de 2024, no mesmo dia em que a whatwg/html#10514 abriu para relatar que os navegadores não silenciam os mesmos casos da mesma forma. Esse relato continua aberto.

## O que o LogBrew registra

Com os detalhes completos, o SDK de navegador enviou 1 problema chamado `Browser error: Error`, com um frame de stack para `/throws.js` na linha 1, coluna 7, o caminho do arquivo-fonte e a chave de agrupamento `browser.error:Error:/throws.js`. Cada script que lança um erro ganha o próprio problema.

Com o erro silenciado, o problema teve o mesmo nome, nenhum frame de stack, linha 0, coluna 0 e a chave de agrupamento `browser.error:Error`. Os erros silenciados compartilham esse 1 problema, então a contagem dele diz quantos erros você ainda não consegue ver.

Ambos os eventos trouxeram o caminho da página, o runtime `Chromium 152` no `macOS` e um breadcrumb `page_view`. Nenhum trouxe o texto da mensagem. O SDK marcou como `redacted`.

## Perguntas frequentes

### O que significa Script error. em JavaScript?

Um script de outra origem lançou um erro, e o navegador escondeu os detalhes da página porque o arquivo não foi carregado com CORS. O script em si rodou.

### Por que Script error. tem linha 0 e nenhum stack trace?

O HTML Standard substitui a mensagem, o arquivo, a linha, a coluna e o objeto de erro quando silencia um erro. Só sobra a string `Script error.`.

### Script error. significa que o script não carregou?

Não. Um script que não carrega dispara o evento `error` no elemento `script` e nunca roda. `Script error.` significa que o script rodou e lançou um erro.

### Consigo ver a mensagem sem mudar o servidor?

No console do navegador, sim. No seu rastreamento de erros, não. A página precisa de `crossorigin` na tag e do cabeçalho CORS do servidor, ou do script na sua própria origem.

### Devo filtrar Script error. do meu rastreamento de erros?

Conte em vez de filtrar. O número diz quantos erros você não consegue ver, e ele cai para 0 quando todo script de outra origem carrega com CORS.

## Conte os erros que você ainda não consegue ver

O SDK de navegador do LogBrew mantém cada erro silenciado em 1 problema e dá a cada erro real o arquivo, a linha e o stack trace. Comece no plano gratuito generoso, sem cartão.

[Comece grátis](https://logbrew.co/pt-BR)

## Fontes

- [MDN, Window: error event](https://developer.mozilla.org/en-US/docs/Web/API/Window/error_event)
- [MDN, crossorigin attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/crossorigin)
- [HTML Standard, Runtime script errors](https://html.spec.whatwg.org/multipage/webappapis.html#runtime-script-errors)
- [whatwg/html#2440](https://github.com/whatwg/html/issues/2440)
- [whatwg/html#10514](https://github.com/whatwg/html/issues/10514)

## Mais correções de erros de JavaScript

- [Corrija o erro Failed to fetch e distinga as 3 causas](https://logbrew.co/pt-BR/errors/failed-to-fetch)
- [Erros de JavaScript que reproduzimos, e como corrigir cada um](https://logbrew.co/pt-BR/errors)
