Qwen3.8 無料版 on AIHubMix:429、「Rate Limited by Provider」、トークンプールの枯渇を解決

AIHubMix約 12 分で読めます
Qwen3.8 無料版 on AIHubMix:429、「Rate Limited by Provider」、トークンプールの枯渇を解決

多くのqwen3.8-max-freeおよびqwen3.8-flash-freeの問題は、次の3つに起因します。無料枠の上限、GMI Cloudが上流で確保しているキャンペーン向けのキャパシティ、そして思考トークンやエージェントのコンテキストが1Mトークンの1日あたりのプールを消費する速さです。これらの一部はエラーとして表示されます。別の場合は、おかしな回答として現れたり、昼前には割り当てが空になっていたりします。これらに加えて、一般的なAPIエラーも引き続き当てはまります。キーやモデルIDの誤り、コンテキストが長すぎること、壊れたツール呼び出し履歴、JSONモード、コンテンツモデレーションなどです。

それぞれに対処法がありますが、1つの設定でほとんどをカバーできます。無料IDから有料のqwen3.8-maxおよびqwen3.8-flashへのキー単位のフォールバックです。一度設定すれば、上流の混雑、使い切った割り当て、あるいは2026年11月13日(太平洋時間)頃に終了するキャンペーンも、サービス停止にはなりません。

クイックマップ

表示される内容 考えられる原因 対処法
1分間に10回呼び出した後の429 無料枠の1分あたりの上限 リクエストの間隔を空ける、またはフォールバックする
その日の残りの時間ずっと続く429 1日あたりのリクエスト数またはトークン数の上限 リセットを待つ、またはフォールバックする
「Rate limited by provider」 上流でキャンペーン向けキャパシティが混雑している バックオフして再試行する、またはフォールバックする
トライアルが使い切られたという返信 トライアルの10回の呼び出しを消費し、チャージしていない $1以上をチャージする
リクエストがハングしてからタイムアウトする 最初のトークンが出るまでの最大の思考時間 ストリーミングを使う、クライアントのタイムアウトを延ばす
エージェントを数回実行しただけで1日のトークンがなくなる 思考と再送されるコンテキストの合計 思考をオフにし、コンテキストに上限を設ける
無料IDが動作しなくなる キャンペーンが終了した、またはクレジットを使い切った 有料IDに切り替える

無料枠とキャンペーンに起因するエラー

無料枠の上限による429

表示される内容。$1以上をチャージすると、AIHubMixの無料モデルは、無料カタログ全体で共有される形で、1分あたり10リクエスト、1日あたり100リクエスト、1日あたり1Mトークンまで利用できます。無料モデルのページによると、「上限を超えると、次の分または日が始まるまでAPIは429を返します」。AIHubMixのHTTPステータスコードのリファレンスでは、リクエスト頻度による429のメッセージが「The xx model Too many requests; please try again later.」と記載されています。

原因。上限はモデル単位ではなくアカウント単位です。別の無料モデルでのバッチ処理も、同じ分と同じ日の枠を消費します。

再現方法。11回の連続したリクエストで、1分あたりの上限に達します。これは1日の100リクエストのうち11回を消費します。

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回すべてが1分以内に届くと、最初の10回は200を、11回目は429を返します。

対処法。バッチ処理は、シンプルなレートリミッターを使って1分あたり10リクエスト未満に抑えてください。1日の上限については、リセットを待つか、超過分を有料モデルに振り向けるフォールバック(後述)を設定してください。

「プロバイダーによってレート制限されています – 同時実行数の引き上げをリクエストするにはサポートに問い合わせるか、後でもう一度お試しください。」

表示される内容。AIHubMix自身の10月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回のトライアル呼び出しが与えられます。10回目の後も、APIは応答を返し続けますが、その内容はトライアルが使い切られたことを示す通知です。モデルの出力をユーザーに表示するアプリでは、その通知がそのまま表示されてしまいます。

対処法。$1以上をチャージしてください。これにより、アカウントは上記の1日あたりの割り当てに恒久的に切り替わります。

Maxでのクライアントのタイムアウト

表示される内容。ストリーミングなしでqwen3.8-max-freeにリクエストすると、ハングした後、HTTPクライアント、プロキシ、またはツールでタイムアウトして失敗します。

原因。Maxは、最初の目に見えるトークンが出る前に考えます。AIHubMixは無料ルートで約55秒のレイテンシと毎秒約9トークンを計測しているため、ストリーミングなしの4Kトークンの回答は、1つのかたまりとして届くまで約8分かかります。経路上で短いタイムアウトが設定されているものは、先に諦めてしまいます。フォールバックでは解決しません。AIHubMixのフォールバックのルールでは、クライアント側のタイムアウトはフォールバックを発動させないためです。

修正方法。 レスポンスをストリーミングで受け取り、クライアントのタイムアウトを引き上げてください(OpenAI Pythonクライアントでtimeout=900を指定すると、長い回答にも対応できます)。インタラクティブな用途には Flash を使用してください。

一般的なAPIエラー

無料IDでのすべてのエラーが割り当てに関するものとは限りません。以下のエラーは、無料IDと有料IDのどちらでも同じくらい頻繁に発生します。AIHubMixのステータスコードのリファレンスによると、AIHubMixは400エラーのほとんどを上流のモデルからそのまま返します。無料IDはGMI Cloud上で、有料IDはAlibaba Cloud上で動作しているため、400の正確な文言は2つの経路で異なる場合があります。以下のメッセージは、AIHubMixのリファレンスとAlibaba Cloudのエラーコードのリファレンスから引用したものです。

ステータス エラー 典型的な原因
401 Unauthorized キーの誤りまたは未指定
503 Incorrect model ID タイプミス、または他社プラットフォームのID
403 Key not authorized for the model キーでそのモデルが有効化されていない
400 Range of input length コンテキストが上限を超えている
400 Role "tool" without "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の前にハイフンがあります。GMI CloudのQwen/Qwen3.8-Maxのように、他プラットフォームからコピーしたIDはAIHubMixには存在しません。コピー&ペーストでもエラーにならない場合があります。QwenCloudのIDqwen3.8-maxはAIHubMixで有効なIDですが、これは有料モデルなので、リクエストは静かに課金されます。

再現方法。

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のキーは、モデルのリストで制限できます。別のプロジェクト用に、独自のモデルリストで作成されたキーは、Qwen3.8の無料IDを追加するまでアクセスできません。

対処法。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で報告しています。

原因。モデルに送信される履歴には、対応するツール呼び出しが削除されたツール結果か、結果が欠けているツール呼び出しが含まれています。手作業による履歴の削減やコンテキストのコンパクションが主な原因です。

対処法。ツール呼び出しとその結果を1つの単位として扱ってください。アシスタントメッセージ内のすべての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モードに関する2つのエラーが掲載されています。

  • 「'response_format' を 'json_object' 型で使用するには、'messages' に何らかの形で単語 'json' を含める必要があります。」
  • 「enable_thinking が true の場合、JSONモードのレスポンスはサポートされていません」

原因。1つ目は、OpenAIのJSONモードと同じルールです。プロンプトにJSONという語を含める必要があります。2つ目はQwen3.8でより重要です。思考はデフォルトでオンになっているため、他のモデルでは動作するjson_objectのリクエストが、ここでは失敗することがあります。Alibabaのリファレンスには、どのモデルが2つ目のメッセージを返すかは記載されていないため、使用する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を返すようになります。予想より速くプールを消費する要因は3つあります。

思考トークン

どちらのモデルもデフォルトで思考します。Alibabaは思考分を出力トークンとして課金し、無料ルートではそのトークンが1日のプールに算入されます。AIHubMixのテストでは、2文の回答にqwen3.8-flash-freeが89個の出力トークンを使い、そのうち36個が思考に充てられました。Maxはさらに多く思考します。Artificial Analysisの計測では、指数の算出に1億9000万個の出力トークンを使用しており、中央値は8700万個でした。

抽出、整形、短い検索などでは、思考をオフにしてください。Qwen3.8ではenable_thinkingがAlibabaが文書化している切り替えで、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)

usageブロックのreasoning_tokensが0に下がっているか確認してください。下がっていない場合、その経路では切り替えがモデルに届いておらず、思考のためにトークンが消費され続けています。

エージェントのループが文脈を再送する

コーディングエージェントは、毎ターン、ファイルの内容やツール結果を含む会話全体を送信します。40Kトークンまで膨らんだセッションでさらに20ターン実行すると、800Kの入力トークンが送信されます。これは出力を含める前に1日のプールのほとんどを使い切る量です。ツールのモデル設定でコンテキストウィンドウに上限を設け、新しいタスクには新しいセッションを開始し、ツールが対応していればコンパクションを使ってください。

一度に大きなリクエストを送る

MaxとFlashはどちらも1Mトークンのコンテキストを扱えますが、これは1日のプールと同じ量です。ウィンドウを埋め尽くす単一のリクエストだけで、その日の枠を使い切ってしまいます。

キャンペーン終了時

無料期間は太平洋時間で2026年11月13日頃に終了します。GMI Cloudのキャンペーンクレジットが先に尽きた場合は、それより早く終わります。その後は-free付きのIDは無料ではなくなります。すでに有料IDへのフォールバックを設定しているコードはそのまま動作し続けます。無料IDを直接呼び出しているコードには、1つの変更が必要です。モデル名から-freeを削除してください。

フォールバックを一度設定する

AIHubMixは、プライマリモデルが失敗した場合にゲートウェイでモデルを切り替えられます。これはAPIキーごとに設定でき、コードの変更は不要です。モデルマッピングとフォールバックに完全なルールが記載されています。Qwen3.8の無料IDについては次のとおりです。

  1. AIHubMixコンソールでAPIキー管理を開き、アプリが使用しているキーを編集します。
  2. 「Fallback models on error」の下に、1つ目としてqwen3.8-max、2つ目としてqwen3.8-flashを追加します。
  3. コードでは引き続きqwen3.8-max-freeを呼び出します。

バックアップのリストには無料IDを入れないでください。無料モデルはプライマリモデルとしてのみ使用できます。バックアップリストに入れると、黙ってスキップされます。

状況 フォールバックするか
無料モデルがクォータまたはレート制限に達する はい、有料のバックアップへ
応答が始まる前にすべてのアップストリームチャネルが失敗する はい
ストリームがすでに開始されている いいえ
クライアントがタイムアウトした いいえ
自分のキーが無効、または残高不足 いいえ

フォールバックのリクエストは有料モデルの価格で課金されるため、アカウントに残高を残しておいてください。フォールバックのリクエストが「Your account balance is insufficient. Please recharge your account to continue using the API.」というメッセージとともに403で失敗し始めた場合は、チャージしてください。フォールバックが自分の残高を迂回することはありません。残高が-$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

どのツールでも、2つの既知の問題が当てはまります。エージェントのループは、前述のとおり共有のトークンプールを消耗させます。また、Maxは待ち時間が長いため、対話型エージェントのメインモデルとしては遅く感じられます。ClineのPlanモードとActモードのように、計画と編集で別々のモデルを選べるツールなら、計画にMax、編集にFlashを割り当てられます。

15分のスモークテスト。ツールをqwen3.8-flash-freeに向け、実際のリポジトリにある小さな関数に対して単体テストを1つ追加し、そのテストを実行するよう依頼します。成功の例は次のとおりです。エージェントがファイルを読み、テストを書き、ツール呼び出しで実行し、AIHubMixの使用ログに無料モデルへのリクエストが$0で記録されます。その後、計画のステップをqwen3.8-max-freeで繰り返し、かかった時間とトークン数を確認します。

チェックリスト

  • $1以上をチャージ済みで、1日のクォータが10回の試用呼び出しに代わっている
  • モデルページからモデルIDを正確にコピーし、キーで有効化済み
  • バッチジョブが毎分10リクエスト未満に抑えられている
  • Maxのリクエストはストリーミングされ、クライアントのタイムアウトが10分以上
  • 簡単なリクエストでは思考をオフにし、reasoning_tokensを確認済み
  • エージェントのコンテキストに上限を設け、新しいタスクには新しいセッションを使用
  • 履歴の整理で、各ツール呼び出しとその結果がまとめて残るようにしている
  • JSONモードの呼び出しでJSONに言及し、思考をオフにして実行
  • フォールバックはqwen3.8-max、次にqwen3.8-flashに設定済み
  • フォールバックのリクエスト用に残高が残っている
  • 無料期間の終了時期である11月13日頃にリマインダーを設定済み

FAQ

ほとんど使っていないのに、qwen3.8-max-freeで429が返るのはなぜですか?
アカウント上の別の無料モデルが共有の分または日の枠を使い切ったか、キャンペーンのアップストリーム容量が混み合っているかのどちらかです。エラーメッセージでどちらか分かります。「rate limited by provider」はアップストリームが原因であることを示します。

「Incorrect model ID」が返るのはなぜですか?
モデル名がAIHubMixのIDと正確に一致していません。qwen3.8-max-freeまたはqwen3.8-flash-freeを、すべて小文字で使ってください。GMI Cloudや他のプラットフォームのIDはここには存在しません。このエラーは503として返されるため、リトライ処理がこれを繰り返し再試行しないよう確認してください。

フォールバックに費用はかかりますか?
フォールバックが発生したときだけかかります。フォールバックされたリクエストは、応答した有料モデルの価格で課金されます。

フォールバックのリストにqwen3.8-flash-freeを入れてもよいですか?
いいえ。無料モデルはプライマリモデルとしてのみ使用できます。AIHubMixはバックアップのリストでそれらをスキップします。

思考が無料トークンを消費しないようにするにはどうすればよいですか?
推論を必要としないリクエストでは、extra_bodyにenable_thinkingをfalseとして渡し、usageブロックのreasoning_tokensが0になっていることを確認してください。

コーディングエージェントが1日のプールをこれほど速く使い切るのはなぜですか?
エージェントはターンごとに会話全体を再送信するからです。コンテキストウィンドウに上限を設け、新しいタスクには新しいセッションを開始し、メインのエージェントモデルとしてFlashを使ってください。

11月13日以降、無料IDはどうなりますか?
無料ではなくなります。GMI Cloudのキャンペーンクレジットが先に尽きた場合はそれより早くなります。qwen3.8-maxまたはqwen3.8-flashに切り替えるか、設定済みのフォールバックに任せてください。

続けて読む:Qwen3.8 Freeシリーズ

出典