Повідомлення Whizi не надсилається, або відповідь так і не приходить

Коротка відповідь

Повідомлення Whizi, яке не надсилається, це одна з п'яти причин: ще генерується інша відповідь, ви надіслали той самий текст двічі, ви перевищили ліміт за хвилину чи годину, повідомлення не пройшло перевірку, або ваш сесійний токен закінчився. Whizi називає причину прямо в тексті помилки, а запит, відхилений через ліміт швидкості, нічого не коштує.

Коротка відповідь

Повідомлення Whizi, яке не надсилається, це одна з п'яти причин: ще генерується інша відповідь, ви надіслали той самий текст двічі, ви перевищили ліміт за хвилину чи годину, саме повідомлення не пройшло перевірку, або ваш сесійний токен закінчився. Whizi називає причину прямо в тексті помилки, тож саме побачений рядок підказує рішення.

Що ви бачитеКодЧомуЩо робити
Generation already in progress. Please stop it or wait for it to finish.409На вашому акаунті вже виконується інша відповідьЗупиніть її або зачекайте
Duplicate message ignored. Please wait for the current response to finish.409Той самий текст (і зображення) вже нещодавно надсилався в цей чатДочекайтеся відповіді, яка вже виконується
Too many requests. Please wait and try again.429Хвилинне вікно відхилило запитЗачекайте, потім надішліть знову
Hourly message limit reached. Please try again later.429Годинну стелю чату відхиленоЗачекайте, потім надішліть знову
A non-empty message is required.400Повідомлення відсутнє або складається лише з пробілівВведіть щось
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time.400Одне повідомлення перевищило 100 000 символівРозділіть його або питайте про один розділ за раз
The model is temporarily rate-limited. Please retry shortly.429Провайдер моделі відповів на з'єднання кодом 429Спробуйте ще раз або перемкніть модель
Failed to send message.немає, повідомлення на сайтіВідправка не вдалася, а бекенд не надав повідомленняПеревірте з'єднання і надішліть знову
Something went wrong. Please retry.500Будь-яка необроблена помилка на бекендіНадішліть знову, а якщо повторюється, повідомте про це
Invalid or expired session token.401Перевірка токена не вдаласяОновіть сторінку і увійдіть знову

Відмови через ліміт швидкості скасовуються, тож відхилений запит ніколи не списує повідомлення з вашого ліміту.

Нічого не відбувається при натисканні Enter

Якщо Enter взагалі нічого не робить, значить ще генерується відповідь. Поле вводу навмисно ігнорує Enter, поки триває генерація, тож це не пропущене натискання. Shift разом з Enter усе одно вставляє новий рядок.

Whizi виконує одну генерацію на акаунт одночасно, це забезпечує блокування на рівні користувача, тож два пристрої ніколи не можуть генерувати одночасно для одного акаунту. Друга спроба відхиляється повідомленням Generation already in progress. Please stop it or wait for it to finish., HTTP 409, код generation_in_progress. Той самий рядок повертається, коли координатор генерації повідомляє про конфлікт під час з'єднання.

Надсилання однакового тексту двічі повертає Duplicate message ignored. Please wait for the current response to finish., HTTP 409, код duplicate_message. Це трапляється, коли той самий текст повідомлення (і зображення) вже нещодавно надсилався в цю розмову, що якраз і буває при подвійному кліку або нетерплячому другому натисканні Enter.

Рішення для обох випадків однакове: зупиніть відповідь, що виконується, або дочекайтеся її завершення. Зупинку обробляє сервер. Координатор скасовує читання від провайдера, зберігає весь текст, що встиг надійти, звільняє блокування і повертає невиконаний хід. Якщо блокування якимось чином залишилося, воно відновлюється саме: блокування стає доступним для перехоплення, щойно його власник визнається осиротілим або зависаючим, а прострочені блокування прибираються за розкладом.

Якщо після зупинки лишається прогалина, у бульбашці асистента з'являється Generation stopped., це текст, який зберігається, коли генерацію зупинено, а частковий текст не було захоплено. Generation stopped, but it could not be saved. означає, що зупинка спрацювала, але зберегти частину відповіді не вдалося.

Повідомлення відхиляється ще до того, як його побачить модель

Це відмови валідації HTTP 400, які виникають до того, як щось доходить до моделі. Нічого не було надіслано далі.

ПовідомленняКодТригер
A non-empty message is required.empty_messagecontent відсутній або складається лише з пробілів
A model is required.invalid_modelmodel відсутній або порожній
That model is not available for text chat.unsupported_modelІдентифікатор моделі не відповідає жодній текстовій моделі в каталозі
This message is {count} characters, over the 100,000 character limit. Attach a shorter file, or ask about one section at a time.message_too_longОдне повідомлення перевищило 100 000 символів
That system prompt is missing or over the 32,000 character limit.invalid_system_promptСистемний промпт відсутній або перевищує 32 000 символів
That image reference is not valid.invalid_image_urlПосилання на зображення не є рядком або довше за 2 048 символів
This conversation has {count} messages, over the 100 message limit.too_many_messagesМаршрут чату застосунку відхилив стенограму з понад 100 повідомленнями в одному запиті

Ліміт у 100 000 символів охоплює все повідомлення, включно з будь-яким текстом, витягнутим із вкладення. Про те, що робить Whizi, коли витягнутий текст вкладення не вміщується в бюджет повідомлення, читайте на сторінці file upload failed.

Ліміти швидкості і одна відмова, що не про швидкість

Обидва рядки про ліміт швидкості 429 наведені в таблиці вище, і обидва мають код rate_limit_reached. Відхилений запит скасовується, тож 429 ніколи не списує повідомлення з вашого ліміту: перечекайте вікно і надішліть знову. Значення вікон і ліміти планів, на яких вони базуються, описані на сторінках rate limits та out of credits.

Одна відмова з тієї ж родини взагалі не про швидкість: Account sharing limit reached. Please use your own Whizi account., HTTP 403, код account_sharing_limit, з'являється, коли за останні 24 години на одному акаунті було помічено понад 3 різні ключі пристрою чи сесії. Очікування хвилини її не знімає.

Відповідь починається, а тоді зупиняється або взагалі не з'являється

Щойно з'єднання відкрито, збій надходить або від провайдера моделі, або від механізму, що передає потік. Рядки різняться залежно від того, де стався збій.

ПовідомленняЗвідки воно береться
The model is temporarily rate-limited. Please retry shortly.HTTP 429 provider_rate_limited, коли провайдер відповідає на з'єднання кодом 429
The model provider rejected the request.Використовується, коли тіло помилки від провайдера не вдається розібрати, або воно розбирається в порожнє повідомлення
The model provider returned an empty stream.HTTP 502, вищерозташований сервіс відповів OK, але надіслав порожнє тіло
The model provider returned an error.Подія помилки в потоці, коли провайдер надсилає кадр помилки без власного повідомлення
The model stream was interrupted.Подія помилки в потоці для будь-якого іншого збою посеред потоку
Generation failed mid-stream.Генерація завершилася невдачею вже після того, як байти почали надходити
Generation failed to start.Внутрішній текст за замовчуванням при збої запуску координатора, який не несе власного повідомлення
The generation stream is unavailable.Виникає, коли координатор не може повернути потік для приєднання
Generation aborted before it started.Виникає як AbortError, коли клієнт від'єднується до завершення з'єднання з вищерозташованим сервісом
Something went wrong. Please retry.HTTP 500 internal_error, тіло для будь-якої необробленої помилки бекенду
Sorry, there was an error generating the response.Записується в бульбашку асистента, коли потік завершується без фінального повідомлення і без накопиченого вмісту

Будь-який збій вищерозташованого сервісу, окрім 429, це HTTP 502 provider_error із повідомленням провайдера, обрізаним до 300 символів. На шляху посеред потоку немає внутрішньоканальної події помилки: з'єднання просто розривається.

Один із цих рядків це радше запис, ніж повідомлення. Generation aborted before it started. виникає як AbortError, коли клієнт від'єднується до завершення з'єднання з вищерозташованим сервісом, і маршрут відповідає на цей випадок кодом HTTP 408 із порожнім тілом, тож цей рядок це те, що записує сервер, а не те, що показує браузер. У мережевому трасуванні порожній 408 на маршруті генерації означає, що запит зник ще до того, як була досягнута будь-яка модель.

Під усім цим є універсальний обробник: усе, що бекенд не розпізнає, завершується як HTTP 500 internal_error з тілом Something went wrong. Please retry. HTTP 500 не вказує на причину. Надішліть повідомлення ще раз, а якщо повторюється, зверніться в підтримку.

Що робити: надішліть знову, а якщо повторюється, перемкніться на іншу модель у тій самій розмові. Ці помилки виникають вище за Whizi, а не у вашому акаунті чи налаштуваннях.

Одне, що робити не обов'язково, це тримати вкладку відкритою. Генерація виконується в Durable Object окремо для кожної розмови, тож закриття вкладки посеред потоку не вбиває відповідь, і вона все одно зберігається. Повторно відкрита вкладка або другий пристрій можуть приєднатися до генерації, що вже триває. The generation stream is unavailable. виникає, коли координатор не може повернути потік для приєднання. Перезавантажте розмову і прочитайте те, що вже збереглося, замість очікування на потік.

У режимі порівняння поряд рядки для кожної сторони знову інші: The model did not respond. Please try again., коли відповідь генерації не OK і не містить читабельної помилки, Could not start a comparison chat., коли не вдається створити базовий чат, і Something went wrong. як останній варіант. Останній це коротка форма, без речення про повторну спробу після нього, за чим і можна відрізнити його від тіла Something went wrong. Please retry. при 500.

Ваша сесія закінчилася

Помилки автентифікації виглядають як помилки відправки, бо проявляються саме при надсиланні. Authentication required. це HTTP 401 unauthorized і виникає, коли запит не містить токена доступу. Invalid or expired session token. це той самий статус і код, коли перевірка токена не вдається з будь-якої причини: токен прострочився, підпис невірний, видавець неправильний.

На стороні сайту натомість можна побачити Failed to retrieve session token., яке сайт видає щоразу, коли отримання токена повертає порожнечу перед списком чатів, завантаженням чату, видаленням, перейменуванням чи вивантаженням. Режим порівняння має власне формулювання: Your session expired. Please refresh and try again.

Рішення це оновлення сторінки, а якщо оновлення не відновлює сесію, повторний вхід. Нічого в акаунті не втрачається, і жодне повідомлення не було надіслано.

Це не збій, це ліміт

Відмова через ліміт і відмова через рівень плану це не збої відправки. Запит було сформовано правильно, і Whizi навмисно його відхилив, тож у полі вводу нічого виправляти не потрібно: відмови через ліміт розглянуто на сторінці out of credits, а модель, що показана заблокованою, на сторінці troubleshooting.

Промпт, відхилений перевіркою контенту, це також не збій відправки. Перевірка відбувається до резервування будь-якої квоти і до виклику провайдера, тож відхилений промпт не коштує жодного ліміту, а відмова приходить як HTTP 400 із причиною, показаною в чаті.

Замість цього не вдається редагування надісланого повідомлення

Редагування промпту і повторна відправка це спосіб повторно виконати хід, оскільки у Whizi немає керування повторною генерацією. Цей шлях має власні два збої.

That message is no longer part of this conversation. Reload and try again. це HTTP 404 replace_anchor_not_found, повертається, коли редагування вказує на ідентифікатор повідомлення, якого вже немає в розмові. Перезавантажте розмову. Клієнт утримує ідентифікатор повідомлення, якого в сервера вже немає.

Conversation not found. це HTTP 404 not_found, повертається, коли ідентифікатор розмови не існує або не належить викликачу. Він з'являється на маршруті генерації, а також на маршрутах читання, видалення, перейменування, додавання повідомлень, перемикання версій і надання спільного доступу.

Контрольний список
  • Коли Enter нічого не робить, значить ще генерується відповідь, а не пропущено натискання
  • Одна генерація виконується на акаунт одночасно, на всіх ваших пристроях
  • Дубльована відправка ігнорується навмисно, з кодом 409 і повідомленням про це
  • Чат має хвилинний і годинний ліміт, які не знімає жоден план
  • Запит, відхилений через ліміт швидкості, нічого не коштує з вашого ліміту
  • Одне повідомлення обмежено 100 000 символами
  • Помилки провайдера виправляються повторною відправкою або зміною моделі, а не налаштуваннями
  • Закриття вкладки посеред відповіді не вбиває відповідь
  • Помилки автентифікації виправляються оновленням сторінки і повторним входом

Поширені запитання

Що означає "Generation already in progress. Please stop it or wait for it to finish."?

Зупиніть відповідь, що виконується, або дочекайтеся її завершення, а тоді надішліть знову. Відмова це HTTP 409 з кодом generation_in_progress, вона з'являється також, коли генерацію виконує інший пристрій на тому самому акаунті. Зупинку обробляє сервер: часткова відповідь зберігається, блокування звільняється, а невиконаний хід повертається.

Моя відповідь зупинилася на півдорозі. Чи списало з мене повідомлення?

Збій посеред потоку розриває з'єднання без внутрішньоканальної події помилки, а будь-який текст, що встиг надійти до розриву, зберігається. Якщо ви самі зупиняєте генерацію, сервер скасовує читання від провайдера, зберігає часткову відповідь і повертає невиконаний хід. При повторному збої провайдера перемкніться на іншу модель у тій самій розмові, оскільки помилка виникає вище за Whizi. Якщо у відповідь ви отримуєте HTTP 500 з текстом "Something went wrong. Please retry.", це загальне тіло для необробленої помилки бекенду, а не проблема моделі, тож надішліть повідомлення ще раз і повідомте про це, якщо повторюється.

Чи скасовує закриття вкладки мою відповідь?

Ні, за одним вузьким винятком на самому початку. Якщо клієнт від'єднується до завершення з'єднання з вищерозташованим сервісом, сервер записує "Generation aborted before it started." і відповідає HTTP 408 з порожнім тілом, тому цей запит виглядає так, ніби взагалі нічого не повернув. Після цього моменту відповідь переживає клієнта, оскільки генерація виконується в Durable Object окремо для кожної розмови, і відповідь усе одно зберігається. "The generation stream is unavailable." виникає, коли координатор не може повернути потік для приєднання, а перезавантаження розмови показує все, що вже було збережено.

Whizi каже, що моє повідомлення перевищує ліміт у 100 000 символів. Що робити?

Одне повідомлення обмежено 100 000 символами, і відмова це HTTP 400, код message_too_long. Підрахунок охоплює все повідомлення, включно з текстом, витягнутим із вкладення. Питайте про один розділ за раз або прикріпіть коротший файл. Коли витягнутий текст вкладення не вміщується в бюджет повідомлення, Whizi обрізає його замість відмови і попереджає, що надіслано лише першу частину.