Qwen3.8 Free на AIHubMix: виправлення помилок 429, «Rate Limited by Provider» і вичерпаного пулу токенів

AIHubMix12 хв читання
Qwen3.8 Free на AIHubMix: виправлення помилок 429, «Rate Limited by Provider» і вичерпаного пулу токенів

Більшість проблем із qwen3.8-max-free і qwen3.8-flash-free походять із трьох джерел: обмежень безкоштовного тарифу, ресурсної потужності, яку GMI Cloud виділила для кампанії на боці провайдера, і того, як швидко токени мислення та контекст агента витрачають добовий пул у 1M токенів. Деякі з них проявляються як помилки. Інші — як дивна відповідь або порожня квота до обіду. Крім того, діють звичайні помилки API: неправильний ключ або ID моделі, занадто довгий контекст, зламана історія викликів інструментів, режим JSON і модерація контенту.

Для кожної є рішення, і одне налаштування охоплює більшість із них: резервне перемикання на рівні ключа з безкоштовних ID на платні qwen3.8-max і qwen3.8-flash. Налаштуйте його один раз, і перевантажений провайдер, витрачена квота або завершення кампанії приблизно 13 листопада 2026 року (за тихоокеанським часом) перестануть бути збоєм.

Короткий огляд

Що ви бачите Імовірна причина Рішення
429 після 10 викликів за хвилину Ліміт безкоштовного тарифу за хвилину Розподіліть запити в часі або використайте резервне перемикання
429 до кінця дня Добовий ліміт запитів або токенів Дочекайтеся скидання або використайте резервне перемикання
«Rate limited by provider» Ресурси кампанії зайняті на боці провайдера Зачекайте з повтором або використайте резервне перемикання
Відповідь, що пробний період вичерпано Витрачено 10 пробних викликів, поповнення не було Поповніть рахунок на $1 або більше
Запит зависає, а потім завершується тайм-аутом Максимальне мислення до першого токена Увімкніть потокову передачу, збільшіть тайм-аут клієнта
Добові токени закінчилися після кількох запусків агента Мислення плюс повторно надісланий контекст Вимкніть мислення, обмежте контекст
Безкоштовні ID перестали працювати Кампанію завершено або кредити вичерпано Перейдіть на платні ID

Помилки безкоштовного тарифу та кампанії

429 через обмеження безкоштовного тарифу

Що ви бачите. Після поповнення на $1 або більше безкоштовні моделі AIHubMix дозволяють 10 запитів на хвилину, 100 на день і 1M токенів на день, спільно для всього безкоштовного каталогу. «Після перевищення ліміту API повертає 429 до початку наступної хвилини або доби», за даними сторінки безкоштовних моделей. У довіднику HTTP-кодів стану AIHubMix повідомлення для 429 через частоту запитів має вигляд: «The xx model Too many requests; please try again later.»

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

Як відтворити. Одинадцять швидких запитів поспіль досягають ліміту за хвилину. Це витрачає 11 із 100 добових запитів:

for i in $(seq 1 11); do
  curl -s -o /dev/null -w "%{http_code}\n" https://aihubmix.com/v1/chat/completions \
    -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"model":"qwen3.8-flash-free","messages":[{"role":"user","content":"hi"}],"max_tokens":16}'
done

Якщо всі 11 запитів потрапляють в одну хвилину, перші десять повертають 200, а одинадцятий — 429.

Рішення. Утримуйте пакетні завдання до 10 запитів на хвилину за допомогою простого обмежувача частоти. Для добового ліміту або дочекайтеся скидання, або налаштуйте резервне перемикання (нижче), щоб надлишок ішов на платну модель.

"Обмеження швидкості з боку провайдера – зверніться до служби підтримки, щоб запросити вищу паралельність, або спробуйте пізніше."

Що ви бачите. У власному тесті AIHubMix 16 жовтня виклик qwen3.8-max-free повернув HTTP 429 із таким тілом відповіді, тоді як той самий ключ продовжував працювати з qwen3.8-flash-free:

{"error":{"message":"Model qwen3.8-max-free rate limited by provider – contact support to request higher concurrency or try again later. (tid: …)","type":"service_unavailable","param":"","code":"rate_limit_exceeded"}}

Довідник кодів стану AIHubMix показує це саме повідомлення під кодом 503, тож перевіряйте обидва коди.

Причина. Безкоштовні ID працюють на ресурсах, які GMI Cloud виділила для кампанії. Коли багато користувачів одночасно звертаються до Max, цей пул на боці провайдера на деякий час заповнений. Це не ваша квота: інші безкоштовні моделі з тим самим ключем продовжують працювати.

Рішення. Повторюйте запит з експоненційною затримкою (наприклад, 30, 60 і 120 секунд). Для запитів, які не можуть чекати, нехай резервне перемикання надсилає їх на платну qwen3.8-max. Збережіть tid, якщо звертаєтеся до підтримки: він ідентифікує запит.

Відповідь, що ваш пробний період вичерпано

Що ви бачите. Жодної помилки. Новий обліковий запис отримує 10 пробних викликів загалом, спільних для всіх безкоштовних моделей. Після десятого API продовжує відповідати, але відповідь — це повідомлення, що пробний період вичерпано. Застосунок, який показує вивід моделі користувачам, покаже їм саме це повідомлення.

Рішення. Поповніть рахунок на $1 або більше. Це назавжди переводить обліковий запис на добові квоти, описані вище.

Тайм-аути клієнта для Max

Що ви бачите. Непотоковий запит до qwen3.8-max-free зависає, а потім завершується помилкою тайм-ауту у вашому HTTP-клієнті, проксі або інструменті.

Причина. Max думає до того, як видасть перший видимий токен. За даними AIHubMix, на безкоштовному маршруті затримка становить близько 55 секунд, а швидкість — близько 9 токенів на секунду, тож непотокова відповідь на 4K токенів приходить цілком приблизно за вісім хвилин. Будь-який елемент на шляху з коротшим тайм-аутом здається раніше. Резервне перемикання тут не допоможе: згідно з правилами резервного перемикання AIHubMix, тайм-аут клієнта його не запускає.

Рішення. Увімкніть потокову передачу відповіді, збільште тайм-аут клієнта (timeout=900 у клієнті OpenAI для Python покриває довгі відповіді) і використовуйте Flash для всього інтерактивного.

Звичайні помилки API

Не кожна помилка на безкоштовних ID пов'язана з квотами. Ці трапляються так само часто, як на безкоштовних, так і на платних ID. За довідником кодів стану AIHubMix, більшість помилок 400 передаються від upstream-моделі. Безкоштовні ID працюють на GMI Cloud, а платні — на Alibaba Cloud, тому точний текст помилки 400 може відрізнятися між маршрутами. Наведені нижче повідомлення цитуються з довідника AIHubMix і з довідника кодів помилок Alibaba Cloud.

Код Помилка Зазвичай спричинено
401 Неавторизовано Неправильний або відсутній ключ
503 Неправильний ID моделі Друкарська помилка або ID з іншої платформи
403 Ключ не має доступу до моделі Модель не увімкнено для ключа
400 Діапазон довжини вхідних даних Контекст перевищує ліміт
400 Роль «tool» без «tool_calls» Зламана історія викликів інструментів
400 Помилки режиму JSON Формулювання промпту або мислення
400 Неприйнятний контент Модерація контенту

401: "Неавторизовано – токен доступу недійсний або прострочений."

Причина. Ключ неправильний, відкликаний або прострочений. Якщо заголовок Authorization взагалі відсутній, повідомлення має вигляд: «Unauthorized – no access token supplied; please log in and include a valid token.» Типові причини: змінна середовища не встановлена в оболонці, де запускається код, тож надсилається порожній ключ, або ключ з іншої платформи, наприклад QwenCloud чи GMI Cloud, надсилається на AIHubMix.

Рішення. Перевірте змінну в тій самій оболонці: echo ${AIHUBMIX_API_KEY:0:3} має вивести sk-. Ключі AIHubMix працюють лише на https://aihubmix.com/v1, а ключі інших платформ там не працюють.

503: "Неправильний ID моделі. Будь ласка, запросіть перегляд сторінки моделі або у вас немає дозволу на використання цієї моделі"

Причина. ID моделей мають збігатися точно. Безкоштовні ID — це qwen3.8-max-free і qwen3.8-flash-free, усі малими літерами, з дефісом перед free. ID, скопійовані з інших платформ, наприклад Qwen/Qwen3.8-Max з GMI Cloud, на AIHubMix не існують. Одне копіювання може взагалі не викликати помилки: ID qwen3.8-max з QwenCloud є дійсним ID на AIHubMix, але це платна модель, тож запит непомітно тарифікується.

Як відтворити.

curl -s https://aihubmix.com/v1/chat/completions \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen-3.8-max-free","messages":[{"role":"user","content":"hi"}]}'

Рішення. Скопіюйте ID зі сторінки моделі. Оскільки ця помилка повертається з кодом 503, логіка повторів, яка вважає будь-який 5xx тимчасовим, буде безкінечно повторювати друкарську помилку; сприймайте це повідомлення як постійне.

403: "Заборонено – ключ (останні 6 цифр ключа запиту) не має дозволу на доступ до запитуваної моделі."

Причина. Ключі AIHubMix можна обмежити списком моделей. Ключ, створений для іншого проєкту зі своїм списком моделей, не матиме доступу до безкоштовних ID Qwen3.8, доки ви їх не додасте.

Рішення. Відредагуйте ключ в управлінні API-ключами й додайте qwen3.8-max-free та qwen3.8-flash-free. Якщо ви налаштовуєте резервне перемикання, додайте також платні резервні моделі: резервне перемикання пропускає моделі, яких немає у списку ключа.

400: "Діапазон довжини вхідних даних має бути [1, xxx]"

Причина. Це повідомлення Alibaba про вхідні дані, що перевищують ліміт контексту моделі; число замість xxx і є цим лімітом. Найчастіша причина — сесії агентів, адже історія зростає з кожним кроком. Alibaba також зазначає, що довгі промпти з увімкненим мисленням «можуть спричинити обрізання відповіді або тайм-аут запиту».

Рішення. Скоротіть історію, почніть нову сесію для нового завдання або увімкніть компактування контексту у вашому інструменті. Але обрізайте обережно, інакше ви натрапите на наступну помилку.

400: повідомлення з role "tool" мають бути відповіддю на попереднє повідомлення з "tool_calls"

Довідник Alibaba містить це повідомлення, включно з друкарською помилкою, а також його дзеркальний варіант: «An assistant message with "tool_calls" must be followed by tool messages responding to each "tool_call_id"». Користувачі Qwen Code повідомили про перше в issue #2360.

Причина. Історія, надіслана моделі, містить результат інструмента, виклик якого було обрізано, або виклик інструмента, для якого немає результату. Найчастіші винуватці — самописне обрізання історії та компактування контексту.

Рішення. Розглядайте виклик інструмента та його результати як одну одиницю. Кожному tool_call_id у повідомленні асистента має відповідати повідомлення tool одразу після нього:

messages = [
    {"role": "user", "content": "What's the weather in Hangzhou?"},
    {"role": "assistant", "content": None, "tool_calls": [{
        "id": "call_1", "type": "function",
        "function": {"name": "get_weather", "arguments": "{\"city\": \"Hangzhou\"}"},
    }]},
    {"role": "tool", "tool_call_id": "call_1", "content": "{\"temp_c\": 21}"},
]
# When trimming, drop messages[1] and messages[2] together, never just one of them.

400: режим JSON

Довідник Alibaba містить дві помилки режиму JSON:

  • "'messages' має містити слово 'json' у будь-якій формі, щоб використовувати 'response_format' типу 'json_object'."
  • "Відповідь у режимі Json не підтримується, коли enable_thinking має значення true"

Причина. Перша — те саме правило, що й у режимі JSON від OpenAI: промпт має згадувати JSON. Друга важливіша для Qwen3.8, де мислення увімкнено за замовчуванням, тож запит із json_object, який працює на інших моделях, тут може завершитися помилкою. Довідник Alibaba не вказує, які моделі повертають друге повідомлення, тож перевірте це на ID, який ви використовуєте.

Рішення. Згадайте JSON у промпті та вимикайте мислення для викликів у режимі JSON:

curl -s https://aihubmix.com/v1/chat/completions \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.8-flash-free",
    "messages": [{"role": "user", "content": "Reply in JSON with the city and date: meet in Hangzhou on Nov 3."}],
    "response_format": {"type": "json_object"},
    "enable_thinking": false
  }'

400: «Input data may contain inappropriate content.»

Причина. Код — data_inspection_failed. Alibaba Cloud перевіряє вхідні й вихідні дані на моделях, які вона розміщує, включно з платними ID, на які резервне перемикання надсилає запити. Варіанти: «Output data may contain inappropriate content.» або «Input or output data may contain inappropriate content.». Типовий спусковий механізм — текст, створений користувачами і вставлений у промпт, наприклад зібрані сторінки або заявки в підтримку.

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

Тиха відмова: вичерпаний пул токенів

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

Токени мислення

Обидві моделі думають за замовчуванням, а Alibaba тарифікує мислення як вихідні токени; на безкоштовному маршруті ці токени зараховуються до вашого добового пулу. У тесті AIHubMix відповідь із двох речень від qwen3.8-flash-free використала 89 вихідних токенів, з них 36 на мислення. Max думає більше: Artificial Analysis виміряв, що на його індексі він використав 190M вихідних токенів при медіані 87M.

Для витягування даних, форматування та коротких пошуків вимкніть мислення. enable_thinking — це задокументований Alibaba перемикач для Qwen3.8; з OpenAI SDK він передається в extra_body:

resp = client.chat.completions.create(
    model="qwen3.8-flash-free",
    messages=[{"role": "user", "content": "Return only the invoice number: INV-2026-0042, due Nov 3"}],
    extra_body={"enable_thinking": False},
)
print(resp.choices[0].message.content)
print(resp.usage.completion_tokens_details)

Перевірте, що reasoning_tokens у блоці usage падає до 0. Якщо ні, перемикач не дійшов до моделі на цьому маршруті, і мислення все ще витрачає токени.

Цикли агентів повторно надсилають контекст

Агенти для коду надсилають всю розмову, включно з вмістом файлів і результатами інструментів, на кожному кроці. Сесія, що виросла до 40K токенів і пропрацювала ще 20 кроків, надсилає 800K вхідних токенів: більшу частину добового пулу ще до будь-якого виводу. Обмежте вікно контексту в налаштуваннях моделі вашого інструмента, починайте нові сесії для нових завдань і використовуйте стиснення (compaction), якщо воно є в інструменті.

Один великий запит

Max і Flash обидва приймають контекст у 1M токенів, що дорівнює розміру добового пулу. Один запит, який заповнює вікно, витрачає весь день.

Коли кампанія завершиться

Безкоштовний період закривається приблизно 13 листопада 2026 року (за тихоокеанським часом) або раніше, якщо вичерпаються кампанійні кредити GMI Cloud. Після цього ID з -free перестануть бути безкоштовними. Код, який уже переходить на платні ID, продовжуватиме працювати. Код, що викликає безкоштовні ID напряму, потребує однієї зміни: приберіть -free з назви моделі.

Налаштуйте fallback один раз

AIHubMix може перемикати моделі на рівні шлюзу, коли основна модель відмовляє, налаштовується для кожного API-ключа і не вимагає змін у вашому коді. Model mapping and fallback описує повні правила. Для безкоштовних ID Qwen3.8:

  1. Відкрийте керування API-ключами в консолі AIHubMix і відредагуйте ключ, який використовує ваш застосунок.
  2. У розділі "Fallback models on error" додайте спочатку qwen3.8-max, а другою qwen3.8-flash.
  3. Далі викликайте qwen3.8-max-free у своєму коді.

Не додавайте безкоштовні ID до списку резервних моделей. Безкоштовна модель може бути лише основною; у списку резервних вона мовчки пропускається.

Ситуація Переходить на резервну?
Безкоштовна модель досягає квоти або ліміту швидкості Так, на платну резервну
Усі upstream-канали відмовляють до початку відповіді Так
Потік уже почався Ні
Ваш клієнт вичерпав час очікування Ні
Ваш власний ключ недійсний або на ньому недостатньо коштів Ні

Запити до резервної моделі оплачуються за ціною платної моделі, тому тримайте на рахунку деякий баланс. Якщо запити до резервної моделі почали відмовляти з помилкою 403 "Your account balance is insufficient. Please recharge your account to continue using the API.", поповніть рахунок: fallback не обходить ваш власний баланс. Щойно баланс опуститься нижче -$1, перестануть працювати й безкоштовні моделі, доки ви не поповните рахунок.

Щоб дізнатися, яка модель відповіла, прочитайте заголовки відповіді:

curl -s -i https://aihubmix.com/v1/chat/completions \
  -H "Authorization: Bearer $AIHUBMIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"qwen3.8-max-free","messages":[{"role":"user","content":"hi"}]}' \
  | grep -i -E 'x-aihubmix-(model|fallback)'

X-Aihubmix-Fallback: true означає, що запит перейшов на резервну модель. X-Aihubmix-Model називає модель, яка відповіла, і саме за неї ви платите.

Інструменти для коду

Будь-який інструмент, який приймає OpenAI-сумісного провайдера, працює з безкоштовними ID, зокрема OpenCode, Cline, Kilo Code, Qwen Code і Hermes Agent. AIHubMix має сторінки налаштування для кожного; посібник з OpenCode — добра відправна точка. Значення однакові в кожному інструменті:

Параметр Значення
Тип провайдера OpenAI-сумісний
Base URL https://aihubmix.com/v1
API-ключ Ваш ключ AIHubMix
ID моделі qwen3.8-flash-free або qwen3.8-max-free
Контекстне вікно До 1M; задайте менше, щоб зберегти пул
Максимум вихідних токенів До 131K

Дві відомі проблеми стосуються кожного інструмента. Цикли агентів виснажують спільний пул токенів, як описано вище. А велика затримка Max робить його повільним як основну модель в інтерактивному агенті. Інструменти, які дозволяють вибрати окремі моделі для планування та редагування, наприклад режими Plan і Act у Cline, можуть дати Max планування, а Flash — редагування.

Димова перевірка на 15 хвилин. Направте свій інструмент на qwen3.8-flash-free і попросіть додати один юніт-тест для невеликої функції в реальному репозиторії, а потім запустити тест. Успіх виглядає так: агент читає файл, пише тест, запускає його через виклик інструмента, а журнал використання AIHubMix показує запити до безкоштовної моделі за $0. Потім повторіть крок планування на qwen3.8-max-free і перевірте час і токени, які він використав.

Чек-лист

  • Поповнено на $1 або більше, тож добова квота замінює 10 пробних викликів
  • ID моделі скопійовано точно зі сторінки моделі та увімкнено для ключа
  • Пакетні завдання обмежені менш ніж 10 запитами на хвилину
  • Запити до Max передаються потоково, з таймаутом клієнта 10 хвилин або більше
  • Мислення вимкнено для простих запитів, а reasoning_tokens перевірено
  • Контекст агента обмежено, для нових завдань — нові сесії
  • Обрізання історії зберігає кожен виклик інструмента разом із його результатами
  • Виклики в режимі JSON згадують JSON і виконуються з вимкненим мисленням
  • Fallback налаштовано: qwen3.8-max, потім qwen3.8-flash
  • Залишився баланс для запитів до резервної моделі
  • Нагадування встановлено приблизно на 13 листопада, коли закривається безкоштовний період

Часті запитання

Чому я отримую 429 на qwen3.8-max-free, хоча майже ним не користувався?
Або інша безкоштовна модель на вашому обліковому записі вичерпала спільну хвилину чи день, або upstream-ресурси кампанії зайняті. Текст помилки вказує, що саме: "rate limited by provider" означає upstream.

Чому мій запит повертає "Incorrect model ID"?
Назва моделі не збігається точно з ID AIHubMix. Використовуйте qwen3.8-max-free або qwen3.8-flash-free, усе малими літерами; ID з GMI Cloud чи інших платформ тут не існують. Така помилка повертається як 503, тому переконайтеся, що логіка повторних спроб не повторює її знову і знову.

Чи коштує fallback гроші?
Лише тоді, коли він спрацьовує. Запит, що перейшов на резервну модель, оплачується за ціною платної моделі, яка відповіла.

Чи можна додати qwen3.8-flash-free до списку fallback?
Ні. Безкоштовні моделі можуть бути лише основними; AIHubMix пропускає їх у списку резервних.

Як зупинити мислення від витрачання моїх безкоштовних токенів?
Передайте enable_thinking із значенням false у extra_body для запитів, які не потребують міркувань, і перевірте, що reasoning_tokens падає до 0 у блоці usage.

Чому мій агент для коду так швидко витрачає добовий пул?
Агенти повторно надсилають всю розмову на кожному кроці. Обмежте контекстне вікно, починайте нові сесії для нових завдань і використовуйте Flash як основну модель агента.

Що станеться з безкоштовними ID після 13 листопада?
Вони перестануть бути безкоштовними, а раніше, якщо вичерпаються кампанійні кредити GMI Cloud. Перейдіть на qwen3.8-max або qwen3.8-flash або покладіться на налаштований fallback.

Читайте далі: серія Qwen3.8 Free

Джерела