Erros de importação de chat no Whizi: por que uma importação do ChatGPT ou Claude é rejeitada

Resposta rápida

Uma importação do Whizi falha em um de dois pontos, e a mensagem indica qual: o parser do navegador que lê o arquivo de exportação, ou o envio que posta as conversas para o servidor. O arquivo que o Whizi lê é o conversations.json dentro de uma exportação do ChatGPT ou Claude. Rodar novamente uma importação nunca duplica chats, então tente de novo primeiro.

A resposta rápida

Se o Whizi rejeitou sua importação, verifique primeiro o arquivo que você escolheu: o único arquivo que o Whizi lê é o conversations.json dentro de uma exportação do ChatGPT ou Claude, então descompacte a exportação e escolha esse arquivo em vez do zip em si. Depois disso, uma importação falha em um de dois pontos e o texto da mensagem indica qual: o parser do navegador que lê o arquivo de exportação, ou o endpoint de importação que recebe as conversas que o parser produziu. Erros de arquivo dizem respeito ao arquivo que você escolheu. Erros de envio dizem respeito à rede ou à sessão. Nada fica ambíguo no meio do caminho, porque cada mensagem é uma string fixa ligada a uma única condição.

A segunda coisa a saber antes de tentar de novo: rodar novamente uma importação nunca duplica chats. Cada conversa importada é identificada por conta, origem e id de origem, então importar a mesma exportação duas vezes, retomar depois de uma conexão perdida, ou clicar em Importar duas vezes leva sempre aos mesmos chats uma única vez.

O que você viuOnde falhouO que fazer
Uma mensagem sobre o formato da exportação ou o conversations.jsonAo ler seu arquivo, antes de qualquer envioEscolha um arquivo diferente dentro da exportação, veja a tabela abaixo
Uma mensagem sobre sua sessão ou sua conexãoDurante o envio, na metade do processoEntre novamente ou reconecte, depois rode a importação de novo
Uma contagem de conversas que não puderam ser importadasAlguns lotes falharam em todas as tentativasRode a importação de novo, ela retoma só o que falta
Nada, mas está demorando muitoLimitação de taxa, funcionando como projetadoEspere, o importador tenta de novo sozinho

Erros ao ler o arquivo de exportação

Esses vêm do navegador, antes de um único byte sair da sua máquina. O arquivo de exportação em si nunca é enviado: o navegador o analisa e posta apenas conversas normalizadas, então um erro aqui significa que o arquivo nunca chegou perto de ser enviado.

MensagemGatilhoCorreção
That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip.O parser não consegue identificar nenhum dos dois formatos de exportação, ou um zip resulta em um conteúdo não reconhecidoAbra o arquivo de exportação e escolha especificamente o conversations.json
There is no conversations.json inside that zip. Unzip it and pick the file directly.O zip escolhido não tem uma entrada correspondenteDescompacte-o você mesmo, encontre o conversations.json e escolha esse arquivo
That file is not valid JSON, so there was nothing to read.O arquivo escolhido falha ao ser interpretado como JSONBaixe a exportação novamente do ChatGPT ou Claude e escolha o conversations.json dela
That export has no conversations with text in them.A exportação é interpretada mas resulta em zero conversasA exportação está de fato vazia de transcrições em texto. Nada para corrigir do lado do Whizi
That file is too large for the browser to open. Pick the export .zip instead, which is read one file at a time.O arquivo .json bruto escolhido ultrapassa o limite de leitura do navegadorEscolha o .zip em vez disso. Uma exportação .json bruta é aceita até 300 MB; o caminho do .zip não tem teto próprio, porque só a entrada conversations.json é descompactada
Could not read that file. Please try again.A leitura do arquivo falhou por qualquer outro motivoÉ de fato um caso para tentar de novo. Se repetir no mesmo arquivo, escolha o .zip de exportação, que é lido uma entrada por vez

A primeira mensagem é a mais abrangente, porque uma única string cobre duas condições: um formato de exportação que o parser não consegue identificar, e um zip que resulta em um conteúdo não reconhecido. Ambas levam à mesma correção, que é descompactar a exportação e escolher o conversations.json diretamente.

Erros do próprio envio

Depois que o arquivo é analisado, o importador posta as conversas em lotes. Duas coisas podem dar errado nessa etapa, e ambas são recuperáveis.

MensagemGatilhoCorreção
Your session ended. Sign in again, then start the import.A busca do token não retornou nada na metade da importaçãoEntre novamente e reinicie a importação. O que já foi importado permanece, e a nova tentativa pula esses itens
The import could not be finished. Check your connection and try again.Qualquer outra falha de envio durante a execução da importaçãoVerifique a conexão e rode de novo

Um terceiro resultado não é um erro, e sim um resumo: {count} could not be imported. Run the import again to pick them up. Essa é a contagem de conversas cujos lotes falharam em todas as tentativas. A instrução na mensagem é a correção inteira, e a chave de deduplicação descrita na resposta rápida é o motivo de a segunda execução não custar nada.

Erros que o endpoint de importação retorna

Esses são os códigos e strings que a própria rota de importação produz. O site espelha os mesmos limites e valida antes de enviar, então eles importam principalmente quando algo está postando direto no endpoint ou quando um lote está malformado.

CódigoMensagemGatilho
invalid_importA JSON object body is required.O corpo da importação não é um objeto
invalid_sourceAn import source of chatgpt or claude is required.O campo de origem está ausente ou não é uma das duas origens aceitas
empty_importAt least one conversation is required.O array de conversas está ausente ou vazio
too_many_conversationsThis batch has {count} conversations, over the 25 per request limit.Mais de 25 conversas em uma única requisição
too_many_messagesConversation {n} carries {count} messages, over the 400 per request limit. Send the rest as an append.Mais de 400 mensagens em uma conversa dentro de uma única requisição
invalid_importConversation {n} is not an object.Uma entrada do array de conversas não é um objeto
invalid_importConversation {n} has no messages array.Uma conversa não carrega um array de mensagens
invalid_importConversation {n} has an invalid append target.O campo appendTo não é uma string nem nulo
invalid_messageConversation {n} message {m} is not an object.Uma entrada de mensagem não é um objeto
invalid_messageConversation {n} message {m} needs a role of "user" or "assistant".Uma mensagem tem um papel fora desses dois
invalid_messageConversation {n} message {m} has no text.O conteúdo da mensagem não é uma string
request_too_largeRequest is too large.O corpo JSON excede o limite de bytes da rota, seja pelo Content-Length declarado ou pelos bytes realmente lidos

Os limites por trás dessas mensagens: 25 conversas por requisição, 400 mensagens por conversa por requisição, e um corpo de requisição de no máximo 2.000.000 bytes. O importador do site divide exatamente em 25 e 400 e mantém cada requisição abaixo de 1.200.000 bytes, deliberadamente abaixo do limite de 2.000.000 bytes para deixar espaço para o envelope da requisição. Uma conversa com mais de 400 mensagens não é rejeitada, é dividida: o restante é enviado como fatias anexadas ao chat que a primeira fatia criou.

Uma importação grande pausa por 20 segundos de cada vez

A importação de conversas tem limite de taxa de 20 requisições por minuto por usuário. Uma exportação grande vai atingir esse teto, e isso é esperado, não um problema.

Você não vai ver um erro quando isso acontecer. Uma importação que atinge HTTP 429 não é exibida: o cliente espera 20 segundos e tenta de novo, até 4 tentativas por lote. Então uma importação que parece travada por vinte segundos de cada vez em uma exportação grande está fazendo exatamente o que deveria. Deixe rodando.

Se os lotes ainda falharem depois dessas 4 tentativas, eles caem no resumo {count} could not be imported. Run the import again to pick them up., e rodar a importação uma segunda vez é a correção, não abrir um chamado com o suporte.

O que a importação descarta de propósito

Alguns conteúdos são descartados por design, e uma importação bem-sucedida ainda pode parecer incompleta em comparação com o original.

Para uma exportação do ChatGPT, apenas o ramo que estava na tela é importado. Respostas regeneradas e rascunhos descartados não são reproduzidos como mensagens. Conteúdo que não é transcrição também é ignorado: raciocínio oculto, código e saída de ferramentas de análise, rascunhos de navegação, blocos de instruções personalizadas e chamadas de função.

Para uma exportação do Claude, blocos de pensamento, chamadas de ferramenta e anexos são descartados. Só blocos de texto são importados.

Conversas no arquivo que não têm texto legível são contadas e reportadas como ignoradas em vez de descartadas silenciosamente, então uma contagem de itens ignorados é informação, não uma falha.

Uma conversa sem título utilizável vira Imported chat, e um título com mais de 120 caracteres é cortado. Uma mensagem importada mais longa que o limite de conteúdo é truncada em vez de rejeitada, então uma mensagem grande demais não custa o resto daquela conversa.

Por fim, os carimbos de data e hora: uma mensagem importada datada antes de 2015-01-01, ou datada no futuro, é descartada como carimbo de data e a linha volta para o horário da importação. Um chat que aparece com a data em que você rodou a importação, em vez da data original, foi atingido por essa regra.

Por que rodar a importação de novo é seguro

A chave de deduplicação da resposta rápida tem um fallback. Quando uma exportação não fornece um id de conversa estável, a chave vira um hash da própria transcrição, então uma nova execução ainda encontra essas conversas em vez de adicionar segundas cópias.

Uma consequência a saber: excluir um chat importado e depois importar a mesma exportação de novo traz o chat de volta em vez de reportar uma duplicata. Se você excluiu deliberadamente uma conversa importada, não rode aquela exportação de novo a menos que queira que ela volte.

Lista de verificação
  • Escolha o conversations.json dentro da exportação, não o zip da exportação em si
  • Uma exportação .json bruta é aceita até 300 MB, acima disso use o .zip
  • Erros de sessão e de conexão significam entrar novamente ou reconectar, depois rodar de novo
  • Uma contagem de itens que não puderam ser importados significa rodar a importação de novo
  • Excluir um chat importado e reimportar traz ele de volta
  • Uma importação grande pausando por 20 segundos de cada vez é limitação de taxa, não uma falha
  • Ramos regenerados do ChatGPT, e blocos de pensamento e anexos do Claude, são descartados por design

Perguntas frequentes

O Whizi diz que minha exportação do ChatGPT não é uma exportação do ChatGPT. Por quê?

A mensagem é That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. e ela dispara quando o parser não consegue identificar nenhum dos dois formatos no arquivo que você escolheu, ou quando um zip resulta em um conteúdo não reconhecido. O arquivo que o Whizi lê é o conversations.json, então descompacte a exportação e escolha esse arquivo diretamente. Se você escolheu o zip e recebeu There is no conversations.json inside that zip. Unzip it and pick the file directly. em vez disso, o zip não tem entrada correspondente nenhuma e a exportação precisa ser baixada de novo.

Minha importação parou na metade. Rodar de novo vai duplicar meus chats?

Não. Rodar de novo é a recuperação prevista para uma conexão perdida, uma sessão encerrada, ou um lote que falhou: a segunda execução leva aos mesmos chats uma única vez e retoma só o que falta. Não há nenhuma etapa de limpeza para fazer antes.

Por que só parte das minhas conversas foi importada?

Duas contagens diferentes podem aparecer, e só uma delas é uma falha. {count} could not be imported. Run the import again to pick them up. conta lotes que falharam em todas as tentativas, e rodar a importação de novo é a correção. Uma contagem de itens ignorados é a outra, e reporta conversas no arquivo que não têm texto legível, em vez de conversas que deram errado.

A importação está parada faz um tempo. Está quebrada?

Observe se ela volta a se mover, não quanto tempo já passou. Uma pausa de cerca de 20 segundos seguida de mais progresso é o limitador de taxa, porque o cliente espera 20 segundos e tenta de novo em vez de mostrar qualquer coisa. Uma importação que de fato terminou avisa, seja com uma das strings de erro desta página, seja com o resumo {count} could not be imported. Run the import again to pick them up.. Silêncio mais progresso periódico significa deixar rodando.

Meu arquivo de exportação do ChatGPT ou Claude é enviado para o Whizi?

Não. O arquivo de exportação em si nunca chega ao servidor. Seu navegador o lê, o analisa e posta apenas as conversas normalizadas, o que também explica por que todo erro de formato desta página acontece antes de qualquer envio. O detalhe completo sobre o tratamento de dados está em o que o Whizi faz com seus dados.