La réponse courte
Si Whizi a rejeté votre import, vérifiez d'abord le fichier que vous avez choisi : le seul fichier que Whizi lit est conversations.json à l'intérieur d'un export ChatGPT ou Claude, donc décompressez l'export et choisissez ce fichier plutôt que le zip lui-même. Au-delà de ça, un import échoue à l'un de ces deux endroits et le libellé du message vous indique lequel : l'analyseur du navigateur qui lit votre fichier d'export, ou le point d'entrée d'import qui reçoit les conversations produites par l'analyseur. Les erreurs de fichier concernent le fichier que vous avez choisi. Les erreurs d'envoi concernent le réseau ou la session. Rien entre les deux n'est ambigu, car chaque message est une chaîne fixe liée à une seule condition.
La deuxième chose à savoir avant de relancer quoi que ce soit : relancer un import ne duplique jamais les conversations. Chaque conversation importée est indexée par compte, source et identifiant de source, donc importer le même export deux fois, reprendre après une connexion interrompue, ou cliquer deux fois sur Importer aboutissent tous aux mêmes conversations, une seule fois.
| Ce que vous avez vu | Où ça a échoué | Que faire |
|---|---|---|
| Un message sur le format de l'export ou conversations.json | Lecture de votre fichier, avant tout envoi | Choisissez un autre fichier dans l'export, voir le tableau ci-dessous |
| Un message sur votre session ou votre connexion | Envoi, en cours de route | Reconnectez-vous ou rétablissez la connexion, puis relancez l'import |
| Un décompte de conversations n'ayant pas pu être importées | Certains lots ont échoué à chaque tentative | Relancez l'import, il reprend uniquement ce qui manque |
| Rien, mais ça prend du temps | Limitation de débit, fonctionnement normal | Patientez, l'import réessaie de lui-même |
Erreurs liées à la lecture de votre fichier d'export
Elles viennent du navigateur, avant qu'un seul octet ne quitte votre machine. Le fichier d'export lui-même n'est jamais envoyé : le navigateur l'analyse et ne poste que les conversations normalisées, donc une erreur ici signifie que le fichier n'est jamais allé assez loin pour être envoyé.
| Message | Déclencheur | Solution |
|---|---|---|
That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. | L'analyseur ne peut identifier aucun des deux formats d'export, ou un zip produit un contenu non reconnu | Ouvrez l'archive d'export et choisissez précisément conversations.json |
There is no conversations.json inside that zip. Unzip it and pick the file directly. | Le zip choisi ne contient pas d'entrée correspondante | Décompressez-le vous-même, trouvez conversations.json, et choisissez ce fichier |
That file is not valid JSON, so there was nothing to read. | Le fichier choisi ne peut pas être analysé comme du JSON | Retéléchargez l'export depuis ChatGPT ou Claude et choisissez-y conversations.json |
That export has no conversations with text in them. | L'export s'analyse correctement mais ne produit aucune conversation | L'export est réellement vide de transcriptions textuelles. Rien à corriger du côté de Whizi |
That file is too large for the browser to open. Pick the export .zip instead, which is read one file at a time. | Le fichier .json brut choisi dépasse la limite de lecture du navigateur | Choisissez plutôt le .zip. Un export .json brut est accepté jusqu'à 300 Mo ; le chemin .zip n'a pas de plafond propre, car seule l'entrée conversations.json est décompressée |
Could not read that file. Please try again. | La lecture du fichier a échoué pour une autre raison | Un cas à réessayer, en toute légitimité. Si ça se répète sur le même fichier, choisissez l'export .zip, qui est lu une entrée à la fois |
Le premier message est le plus général, car une seule chaîne couvre deux conditions : un format d'export que l'analyseur ne peut identifier, et un zip qui produit un contenu non reconnu. Les deux mènent à la même solution, qui consiste à décompresser l'export et à choisir directement conversations.json.
Erreurs liées à l'envoi lui-même
Une fois le fichier analysé, l'import poste les conversations par lots. Deux choses peuvent mal se passer à ce stade, et les deux sont récupérables.
| Message | Déclencheur | Solution |
|---|---|---|
Your session ended. Sign in again, then start the import. | La récupération du jeton n'a rien renvoyé en cours d'import | Reconnectez-vous, puis relancez l'import depuis le début. Ce qui est déjà passé reste en place, et la relance l'ignore |
The import could not be finished. Check your connection and try again. | Toute autre défaillance d'envoi pendant l'exécution de l'import | Vérifiez la connexion et relancez |
Un troisième résultat n'est pas une erreur du tout mais un résumé : {count} could not be imported. Run the import again to pick them up. C'est le décompte des conversations dont les lots ont échoué à chaque tentative. L'instruction du message est toute la solution, et la clé de déduplication décrite dans la réponse courte explique pourquoi la seconde exécution ne vous coûte rien.
Erreurs renvoyées par le point d'entrée d'import
Ce sont les codes et chaînes que la route d'import elle-même produit. Le site web reflète les mêmes plafonds et valide avant d'envoyer, donc ils comptent surtout quand quelque chose poste directement vers le point d'entrée ou quand un lot est mal formé.
| Code | Message | Déclencheur |
|---|---|---|
invalid_import | A JSON object body is required. | Le corps de l'import n'est pas un objet |
invalid_source | An import source of chatgpt or claude is required. | Le champ source est absent ou n'est pas l'une des deux sources acceptées |
empty_import | At least one conversation is required. | Le tableau de conversations est absent ou vide |
too_many_conversations | This batch has {count} conversations, over the 25 per request limit. | Plus de 25 conversations dans une même requête |
too_many_messages | Conversation {n} carries {count} messages, over the 400 per request limit. Send the rest as an append. | Plus de 400 messages dans une conversation en une requête |
invalid_import | Conversation {n} is not an object. | Une entrée du tableau de conversations n'est pas un objet |
invalid_import | Conversation {n} has no messages array. | Une conversation ne comporte pas de tableau de messages |
invalid_import | Conversation {n} has an invalid append target. | Le champ appendTo n'est ni une chaîne ni null |
invalid_message | Conversation {n} message {m} is not an object. | Une entrée de message n'est pas un objet |
invalid_message | Conversation {n} message {m} needs a role of "user" or "assistant". | Un message a un rôle en dehors de ces deux valeurs |
invalid_message | Conversation {n} message {m} has no text. | Le contenu du message n'est pas une chaîne |
request_too_large | Request is too large. | Le corps JSON dépasse le plafond d'octets de la route, que ce soit par le Content-Length déclaré ou par les octets réellement lus |
Les plafonds derrière ces messages : 25 conversations par requête, 400 messages par conversation et par requête, et un corps de requête d'au plus 2 000 000 octets. L'import du site web découpe exactement à 25 et 400 et maintient chaque requête sous 1 200 000 octets, volontairement en dessous du plafond de 2 000 000 octets pour laisser de la place à l'enveloppe de la requête. Une conversation de plus de 400 messages n'est pas rejetée, elle est découpée : le reste est envoyé sous forme de tranches ajoutées au chat créé par la première tranche.
Un import volumineux marque une pause de 20 secondes à la fois
L'import des conversations est limité en débit à 20 requêtes par minute et par utilisateur. Un export volumineux atteindra ce plafond, et c'est prévu plutôt que défaillant.
Vous ne verrez pas d'erreur quand cela arrive. Un import qui rencontre un HTTP 429 n'est pas affiché : le client patiente 20 secondes puis réessaie, jusqu'à 4 tentatives par lot. Donc un import qui semble bloqué pendant vingt secondes à la fois sur un gros export fait exactement ce qu'il doit faire. Laissez-le tourner.
Si des lots échouent encore après ces 4 tentatives, ils atterrissent dans le résumé {count} could not be imported. Run the import again to pick them up., et relancer l'import une seconde fois est la solution, pas le support.
Ce que l'import écarte volontairement
Certains contenus sont écartés par conception, et un import réussi peut quand même sembler incomplet par rapport à l'original.
Pour un export ChatGPT, seule la branche affichée à l'écran est importée. Les réponses régénérées et les brouillons abandonnés ne sont pas rejoués comme messages. Le contenu hors transcription est également ignoré : le raisonnement caché, le code et la sortie des outils d'analyse, les brouillons de navigation, les blocs d'instructions personnalisées, et les appels de fonctions.
Pour un export Claude, les blocs de réflexion, les appels d'outils et les pièces jointes sont écartés. Seuls les blocs de texte sont importés.
Les conversations du fichier ne contenant aucun texte lisible sont comptabilisées et signalées comme ignorées plutôt que silencieusement abandonnées, donc un décompte d'éléments ignorés est une information, pas un échec.
Une conversation sans titre exploitable devient Imported chat, et un titre de plus de 120 caractères est raccourci. Un message importé dépassant le plafond de contenu est tronqué plutôt que rejeté, donc un message trop volumineux ne vous coûte pas le reste de la conversation.
Enfin, les horodatages : un message importé daté d'avant le 1er janvier 2015, ou daté dans le futur, voit son horodatage écarté et la ligne revient à l'heure de l'import. Un chat qui arrive avec la date à laquelle vous avez lancé l'import, au lieu de sa date d'origine, a été soumis à cette règle.
Pourquoi relancer l'import est sans risque
La clé de déduplication de la réponse courte dispose d'un repli. Quand un export ne fournit aucun identifiant de conversation stable, la clé devient un hash de la transcription elle-même, donc une relance retrouve tout de même ces conversations au lieu d'en ajouter des doublons.
Une conséquence à connaître : supprimer un chat importé puis réimporter le même export ramène le chat au lieu de signaler un doublon. Si vous avez volontairement supprimé une conversation importée, ne relancez pas cet export, sauf si vous souhaitez la voir revenir.
- Choisissez conversations.json dans l'export, pas le zip d'export lui-même
- Un export .json brut est accepté jusqu'à 300 Mo, au-delà utilisez le .zip
- Les erreurs de session et de connexion signifient qu'il faut se reconnecter, puis relancer
- Un décompte n'ayant pas pu être importé signifie qu'il faut relancer l'import
- Supprimer un chat importé puis le réimporter le fait revenir
- Un import volumineux qui pause 20 secondes à la fois relève de la limitation de débit, pas d'une panne
- Les branches régénérées de ChatGPT, et les blocs de réflexion et pièces jointes de Claude, sont écartés par conception
Questions fréquentes
Whizi me dit que mon export ChatGPT n'est pas un export ChatGPT. Pourquoi ?
Le message est That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip. et il se déclenche quand l'analyseur ne peut identifier aucun des deux formats dans le fichier que vous avez choisi, ou quand un zip produit un contenu non reconnu. Le fichier que Whizi lit est conversations.json, donc décompressez l'export et choisissez ce fichier directement. Si vous avez choisi le zip et obtenu There is no conversations.json inside that zip. Unzip it and pick the file directly. à la place, le zip ne contient aucune entrée correspondante et l'export doit être retéléchargé.
Mon import s'est arrêté en cours de route. Le relancer va-t-il dupliquer mes conversations ?
Non. Relancer est la solution prévue pour une connexion interrompue, une session terminée ou un lot échoué : la seconde exécution aboutit aux mêmes conversations, une seule fois, et ne reprend que ce qui manque. Il n'y a aucune étape de nettoyage à faire au préalable.
Pourquoi seule une partie de mes conversations a-t-elle été importée ?
Deux décomptes différents peuvent apparaître, et un seul des deux est un échec. {count} could not be imported. Run the import again to pick them up. compte les lots ayant échoué à chaque tentative, et relancer l'import est la solution. Un décompte d'éléments ignorés est l'autre cas, et il signale les conversations du fichier ne contenant aucun texte lisible, plutôt que des conversations en échec.
L'import est bloqué depuis un moment. Est-il cassé ?
Observez s'il progresse à nouveau plutôt que depuis combien de temps il tourne. Une pause d'environ 20 secondes suivie de progression supplémentaire correspond au limiteur de débit, car le client patiente 20 secondes puis réessaie au lieu de vous afficher quoi que ce soit. Un import réellement terminé le signale, soit avec l'un des messages d'erreur de cette page, soit avec le résumé {count} could not be imported. Run the import again to pick them up. Silence plus progression périodique signifie qu'il faut le laisser tranquille.
Mon fichier d'export ChatGPT ou Claude est-il envoyé à Whizi ?
Non. Le fichier d'export lui-même n'atteint jamais le serveur. Votre navigateur le lit, l'analyse, et ne poste que les conversations normalisées, ce qui explique aussi pourquoi chaque erreur de format de cette page survient avant tout envoi. Le détail complet du traitement des données figure dans ce que Whizi fait de vos données.