Documentação

Primeiros passos

Solução de problemas

Sintomas comuns ao integrar o SDK web, com a causa e o que verificar em cada um.

5 min de leitura

Esta página reúne os sintomas mais comuns ao integrar o SDK web. As mensagens do SDK são as do bundle latest verificado em 28/09/2026 e podem mudar entre versões. As mensagens do navegador variam conforme o navegador. Quando a causa depende de configuração da plataforma, a página indica o que levar à infinity6.

I6Sdk is not defined

Sintoma: o console mostra I6Sdk is not defined ou window.I6Sdk is not a constructor.

Causa: o bundle ainda não tinha carregado quando o seu código rodou, ou não chegou a carregar.

O que verificar:

  • O <script src="..."> do bundle é um script clássico, sem async, e vem antes do <script type="module">.
  • Na aba Network, a requisição do bundle terminou com status 200.
  • Se a sua página define Content-Security-Policy, ela permite o endereço do bundle em script-src.

Failed to fetch

Sintoma: TypeError: Failed to fetch (Chrome), TypeError: NetworkError when attempting to fetch resource. (Firefox) ou TypeError: Load failed (Safari) ao chamar requireUser(), user() ou upload().

Causa: o navegador não completou a requisição à plataforma e não informa o motivo no erro. Causas comuns: a origem da sua página não está liberada para CORS com credenciais na plataforma; falta de conexão; extensão do navegador bloqueando a requisição.

O que verificar:

  • No console, procure uma mensagem sobre CORS junto do erro.
  • Na aba Network, veja se a chamada aparece bloqueada ou sem resposta.
  • Se for CORS, peça à infinity6 a liberação da origem exata da sua página, com https:// e porta, se houver. Veja Cookies e CORS.

SyntaxError: is not valid JSON

Sintoma: um SyntaxError ao chamar user() ou requireUser(). No Chrome a mensagem termina em is not valid JSON ou é Unexpected end of JSON input (corpo vazio); no Firefox começa com JSON.parse:; no Safari é JSON Parse error.

Causa: user() lê a resposta de api/auth/me como JSON, e a resposta recebida não era JSON. Nesse caso requireUser() rejeita a promessa e não chega a redirecionar ao login.

O que verificar: na aba Network, abra a chamada api/auth/me e veja o status e o corpo da resposta. Leve esses dois dados à infinity6.

file must be a single File

Sintoma: Error: file must be a single File. ao chamar upload().

Causa: o valor de file não é um objeto File. Acontece ao passar o elemento <input>, a lista input.files ou undefined (nenhum arquivo escolhido).

O que verificar: passe input.files[0] e confira que ele existe antes (if (!file) return;). Veja ingest().

Get upload URL failed with status

Sintoma: Error: Get upload URL failed with status seguido de um número.

Causa: o passo em que o SDK pede à plataforma o endereço de envio recebeu uma resposta de erro. O número é o status HTTP devolvido pela plataforma.

O que verificar: na aba Network, a chamada POST para api/ingest/get-url/dataset/<seu-dataset>: o status, o corpo da resposta e o corpo enviado (table e partitions). Confira também se os valores de dataset, table e partitions são os do seu ambiente.

Get upload URL returned no upload URL

Sintoma: Error: Get upload URL returned no upload URL.

Causa: a plataforma respondeu com sucesso, mas a resposta não trouxe o endereço de envio esperado.

O que verificar: na aba Network, o corpo da resposta da mesma chamada. Leve-o à infinity6.

Upload failed with status

Sintoma: Error: Upload failed with status seguido de um número.

Causa: o envio do arquivo ao endereço assinado recebeu uma resposta de erro. Esse envio vai direto ao endereço assinado devolvido pela plataforma, sem passar pela API da plataforma e sem levar o cookie de sessão.

O que verificar: na aba Network, a requisição PUT: o status e o corpo da resposta. Guarde o status, o horário e o nome do dataset.

Network error occurred during upload

Sintoma: Error: Network error occurred during upload.

Causa: o envio do arquivo não foi concluído. O navegador dispara esse erro quando a requisição PUT não completa, o que inclui queda de conexão e também bloqueio do navegador por CORS no destino do envio.

O que verificar: no console, uma mensagem de CORS; na aba Network, o PUT bloqueado ou cancelado; a conexão. Se for CORS no destino, leve à infinity6 a origem da sua página e a mensagem exata do console.

O upload teve sucesso, mas os dados não aparecem

Sintoma: upload() resolve normalmente (devolve ingestId), mas o conteúdo esperado não aparece no destino.

Causa provável: o arquivo enviado não estava no formato exigido — JSON Lines (um objeto por linha) comprimido com gzip, extensão .json.gz. O SDK não valida isso: um arquivo em outro formato ainda assim retorna sucesso na chamada de upload.

O que verificar: confirmar que o arquivo é .json.gz de verdade (não apenas renomeado) e que cada linha do conteúdo descomprimido é um objeto JSON válido isolado. Se o formato estiver correto e o dado ainda não aparecer, contatar o suporte com o ingestId retornado pela chamada.

A página volta ao login em repetição

Sintoma: depois de fazer login, a página redireciona ao login de novo, ou user() não devolve o perfil.

Causa: o cookie de sessão não está sendo guardado ou enviado. O cookie da plataforma é SameSite=None; Secure. Causas a verificar:

  • A sua página é servida em HTTP. O cookie só trafega em HTTPS.
  • O navegador bloqueia ou isola cookies de terceiros. Em geral, a sua página e a plataforma são de sites diferentes, então o cookie de sessão é tratado como de terceiros. O Safari bloqueia por padrão; o Firefox isola esses cookies por site por padrão; no Chrome depende da configuração do usuário.
  • A origem não está liberada para CORS com credenciais (nesse caso o erro costuma ser Failed to fetch, descrito acima).

O que verificar: se a página está em HTTPS; repita o teste em outro navegador ou perfil sem bloqueio de cookies de terceiros; na aba Application (Cookies), veja se o cookie da plataforma aparece.

Não encontrou o seu caso? Reúna o status e o corpo da resposta da aba Network, a mensagem do console e o horário do erro.

Suporte

Suporte à implementação

Canais oficiais para tirar dúvidas durante a integração.

Resposta em até 1 dia útil

E-mail de suporte técnico

Resposta de até 1 dia útil

Envie dúvidas de implementação com o contexto do passo atual.

Enviar e-mail
Em breve

WhatsApp

Resposta de acordo com a fila de atendimento

Atendimento direto para dúvidas rápidas de integração.

Disponível

Assistente de suporte

Resposta imediata

Assistente de documentação e implementação da i6.