Ошибки импорта чатов в Whizi: почему импорт из ChatGPT или Claude отклоняется

Краткий ответ

Импорт в Whizi может не пройти в одном из двух мест, и сообщение об ошибке подсказывает, в каком именно: на этапе разбора файла экспорта браузером или на этапе загрузки переписок на сервер. Файл, который читает Whizi, это conversations.json внутри экспорта ChatGPT или Claude. Повторный запуск импорта никогда не дублирует чаты, поэтому сначала стоит просто повторить попытку.

Короткий ответ

Если Whizi отклонил ваш импорт, сначала проверьте выбранный файл: единственный файл, который читает Whizi, это conversations.json внутри экспорта ChatGPT или Claude, поэтому распакуйте экспорт и выберите именно этот файл, а не сам zip-архив. Помимо этого, импорт может не пройти в одном из двух мест, и формулировка сообщения подсказывает, в каком: парсер в браузере, который читает ваш файл экспорта, или конечная точка импорта, которая принимает переписки, подготовленные парсером. Ошибки файла касаются выбранного вами файла. Ошибки загрузки касаются сети или сессии. Ничего между ними не бывает неоднозначным, потому что каждое сообщение это фиксированная строка, привязанная к одному условию.

Второе, что стоит знать до того, как что-либо повторять: повторный запуск импорта никогда не дублирует чаты. Каждая импортированная переписка привязана к аккаунту, источнику и идентификатору источника, поэтому импорт одного и того же экспорта дважды, возобновление после обрыва соединения или двойной клик по кнопке импорта, все эти сценарии приводят к тому, что одни и те же чаты появляются лишь однажды.

Что вы увиделиГде произошёл сбойЧто делать
Сообщение о формате экспорта или conversations.jsonПри чтении файла, до какой-либо загрузкиВыберите другой файл из экспорта, см. таблицу ниже
Сообщение о сессии или соединенииПри загрузке, на середине процессаВойдите заново или переподключитесь, затем запустите импорт снова
Счётчик переписок, которые не удалось импортироватьНекоторые партии не прошли ни одной повторной попыткиЗапустите импорт ещё раз, он подхватит только недостающее
Ничего, но процесс идёт долгоОграничение частоты запросов, всё работает как задуманоПодождите, импорт повторяет попытки самостоятельно

Ошибки при чтении файла экспорта

Они возникают в браузере, до того как хоть один байт покинет ваш компьютер. Сам файл экспорта никогда не загружается: браузер разбирает его и отправляет только нормализованные переписки, поэтому ошибка на этом этапе означает, что файл так и не дошёл до отправки.

СообщениеПричинаРешение
That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip.Парсер не может определить ни один из форматов экспорта, либо zip выдаёт нераспознанное содержимоеОткройте архив экспорта и выберите именно conversations.json
There is no conversations.json inside that zip. Unzip it and pick the file directly.В выбранном zip нет подходящей записиРаспакуйте архив самостоятельно, найдите conversations.json и выберите этот файл
That file is not valid JSON, so there was nothing to read.Выбранный файл не удаётся разобрать как JSONСкачайте экспорт из ChatGPT или Claude заново и выберите из него conversations.json
That export has no conversations with text in them.Экспорт разбирается, но не даёт ни одной перепискиЭкспорт действительно не содержит текстовых переписок. На стороне Whizi исправлять нечего
That file is too large for the browser to open. Pick the export .zip instead, which is read one file at a time.Выбранный необработанный .json файл превышает предел чтения браузеромВыберите вместо него .zip. Необработанный .json экспорт принимается до 300 МБ; путь через .zip собственного потолка не имеет, потому что распаковывается только запись conversations.json
Could not read that file. Please try again.Чтение файла завершилось ошибкой по иной причинеНастоящий случай для повторной попытки. Если ошибка повторяется на том же файле, выберите .zip экспорта, он читается по одной записи за раз

Первое сообщение самое общее, потому что одна строка охватывает два условия: формат экспорта, который парсер не может определить, и zip, выдающий нераспознанное содержимое. Оба случая решаются одинаково: нужно распаковать экспорт и выбрать conversations.json напрямую.

Ошибки самой загрузки

Как только файл разобран, импорт отправляет переписки партиями. На этом этапе может произойти два сбоя, и оба исправимы.

СообщениеПричинаРешение
Your session ended. Sign in again, then start the import.Запрос токена вернул пустой результат в середине импортаВойдите заново, затем запустите импорт с начала. Всё, что уже загрузилось, останется, а повторный запуск пропустит уже готовое
The import could not be finished. Check your connection and try again.Любой другой сбой загрузки во время выполнения импортаПроверьте соединение и запустите импорт снова

Третий исход это вовсе не ошибка, а сводка: {count} could not be imported. Run the import again to pick them up. Это счётчик переписок, чьи партии не прошли ни одной повторной попытки. Инструкция в самом сообщении и есть полное решение, а ключ дедупликации, описанный в коротком ответе, объясняет, почему повторный запуск ничего вам не стоит.

Ошибки, которые возвращает конечная точка импорта

Это коды и строки, которые выдаёт сам маршрут импорта. Сайт зеркалирует те же ограничения и проверяет данные перед отправкой, поэтому эти сообщения важнее всего, когда что-то отправляет данные в конечную точку напрямую или когда партия сформирована некорректно.

КодСообщениеПричина
invalid_importA JSON object body is required.Тело импорта не является объектом
invalid_sourceAn import source of chatgpt or claude is required.Поле источника отсутствует или не соответствует одному из двух допустимых источников
empty_importAt least one conversation is required.Массив переписок отсутствует или пуст
too_many_conversationsThis batch has {count} conversations, over the 25 per request limit.Более 25 переписок в одном запросе
too_many_messagesConversation {n} carries {count} messages, over the 400 per request limit. Send the rest as an append.Более 400 сообщений в одной переписке в одном запросе
invalid_importConversation {n} is not an object.Элемент массива переписок не является объектом
invalid_importConversation {n} has no messages array.В переписке отсутствует массив сообщений
invalid_importConversation {n} has an invalid append target.Поле appendTo не является ни строкой, ни null
invalid_messageConversation {n} message {m} is not an object.Запись сообщения не является объектом
invalid_messageConversation {n} message {m} needs a role of "user" or "assistant".У сообщения роль отличается от этих двух
invalid_messageConversation {n} message {m} has no text.Содержимое сообщения не является строкой
request_too_largeRequest is too large.Тело JSON превышает предел байтов маршрута, будь то по заявленному Content-Length или по фактически прочитанным байтам

Ограничения, стоящие за этими сообщениями: 25 переписок на запрос, 400 сообщений на переписку в одном запросе и тело запроса не более 2 000 000 байт. Импорт на сайте делит данные ровно по 25 и 400 и держит каждый запрос под 1 200 000 байт, намеренно ниже предела в 2 000 000 байт, чтобы оставить запас на служебную обёртку запроса. Переписка длиннее 400 сообщений не отклоняется, а нарезается: остаток отправляется как дополнительные части поверх чата, созданного первой частью.

Большой импорт делает паузы по 20 секунд

Импорт переписок ограничен 20 запросами в минуту на пользователя. Большой экспорт упрётся в этот потолок, и это ожидаемое поведение, а не сбой.

Когда это происходит, ошибка не показывается. Импорт, наткнувшийся на HTTP 429, не выводится на экран: клиент ждёт 20 секунд и повторяет попытку, до 4 раз на партию. Поэтому если импорт большого экспорта выглядит застывшим на двадцать секунд за раз, он делает именно то, что должен. Оставьте его работать.

Если партии всё же не проходят после этих 4 попыток, они попадают в сводку {count} could not be imported. Run the import again to pick them up., и повторный запуск импорта, а не обращение в поддержку, будет решением.

Что импорт намеренно пропускает

Часть содержимого пропускается намеренно, и успешно завершённый импорт может выглядеть неполным по сравнению с оригиналом.

Для экспорта из ChatGPT импортируется только та ветка, что была на экране. Перегенерированные ответы и отброшенные черновики не воспроизводятся как сообщения. Содержимое, не являющееся стенограммой, тоже пропускается: скрытые рассуждения, код и вывод инструментов анализа, черновики просмотра веба, блоки пользовательских инструкций и вызовы функций.

Для экспорта из Claude отбрасываются блоки размышлений, вызовы инструментов и вложения. Импортируются только текстовые блоки.

Переписки в файле, не содержащие читаемого текста, учитываются и отображаются как пропущенные, а не тихо отбрасываются, поэтому счётчик пропущенных это информация, а не сбой.

Переписка без пригодного названия становится Imported chat, а название длиннее 120 символов обрезается. Импортированное сообщение длиннее предела содержимого усекается, а не отклоняется, поэтому одно слишком крупное сообщение не стоит вам всей остальной переписки.

И наконец, метки времени: импортированное сообщение с датой раньше 2015-01-01 или с датой в будущем отбрасывается как метка времени, и строка получает время импорта по умолчанию. Если чат оказался с датой запуска импорта вместо исходной даты, сработало именно это правило.

Почему повторный запуск импорта безопасен

У ключа дедупликации из короткого ответа есть запасной вариант. Когда экспорт не даёт устойчивого идентификатора переписки, ключом становится хеш самой стенограммы, поэтому повторный запуск всё равно сопоставляет эти переписки, а не добавляет вторые копии.

Одно следствие, о котором стоит знать: удаление импортированного чата с последующим повторным импортом того же экспорта возвращает чат обратно, а не сообщает о дубликате. Если вы намеренно удалили импортированную переписку, не запускайте этот экспорт повторно, если только не хотите, чтобы она вернулась.

Чек-лист
  • Выбирайте conversations.json из экспорта, а не сам zip-архив экспорта
  • Необработанный .json экспорт принимается до 300 МБ, свыше используйте .zip
  • Ошибки сессии и соединения означают, что нужно войти заново или переподключиться, а затем повторить импорт
  • Счётчик того, что не удалось импортировать, означает, что нужно запустить импорт снова
  • Удаление импортированного чата и повторный импорт возвращают его обратно
  • Паузы большого импорта по 20 секунд это ограничение частоты запросов, а не сбой
  • Перегенерированные ветки ChatGPT, а также блоки размышлений и вложения Claude, отбрасываются намеренно

Частые вопросы

Whizi говорит, что мой экспорт из ChatGPT не является экспортом из ChatGPT. Почему?

Сообщение звучит так: That file is not a ChatGPT or Claude export. Look for conversations.json inside the export zip., и оно появляется, когда парсер не может определить ни один из форматов в выбранном вами файле, либо когда zip выдаёт нераспознанное содержимое. Файл, который читает Whizi, это conversations.json, поэтому распакуйте экспорт и выберите именно этот файл. Если вы выбрали сам zip и получили сообщение There is no conversations.json inside that zip. Unzip it and pick the file directly., значит в архиве вообще нет подходящей записи и экспорт нужно скачать заново.

Мой импорт остановился на середине. Дублируются ли чаты при повторном запуске?

Нет. Повторный запуск это предусмотренный способ восстановления после обрыва соединения, завершения сессии или неудавшейся партии: второй запуск помещает те же чаты только один раз и подхватывает лишь недостающее. Никакой предварительной очистки делать не нужно.

Почему импортировалась только часть моих переписок?

Могут появиться два разных счётчика, и лишь один из них означает сбой. {count} could not be imported. Run the import again to pick them up. считает партии, не прошедшие ни одной повторной попытки, и решение это повторный запуск импорта. Счётчик пропущенных это другое, он отражает переписки в файле без читаемого текста, а не переписки, с которыми что-то пошло не так.

Импорт висит уже какое-то время. Он сломан?

Следите за тем, продолжает ли он двигаться, а не за тем, сколько времени прошло. Пауза примерно в 20 секунд, за которой следует продолжение, это ограничитель частоты, потому что клиент ждёт 20 секунд и повторяет попытку вместо того, чтобы что-либо показывать. Действительно завершившийся импорт сообщает об этом либо одной из строк ошибок на этой странице, либо сводкой {count} could not be imported. Run the import again to pick them up.. Тишина с периодическим прогрессом означает, что нужно просто оставить его в покое.

Загружается ли мой файл экспорта из ChatGPT или Claude на серверы Whizi?

Нет. Сам файл экспорта никогда не попадает на сервер. Ваш браузер читает его, разбирает и отправляет только нормализованные переписки, именно поэтому все ошибки формата на этой странице возникают до того, как что-либо отправлено. Полное описание обработки данных смотрите в статье что Whizi делает с вашими данными.