GPT-6 Astra API のエラー:model_not_found、401、そして max_tokens の罠
GPT-6 Astra エンドポイントで実際に取得したエラーレスポンス本文と、計測でわかった一点:Astra は max_tokens を完全に無視する。16 を要求して 2,614 課金された。
以下のエラーレスポンス本文はすべて、2026 年 9 月 6 日に GPT-6 Astra エンドポイントへ実際にリクエストを投げて取得したものだ。 言い換えも、作られたエラー文もない。そしてエラーですらないのに、上のどれよりも高くつく発見が一つある:Astra は max_tokens を無視する。
model_not_found 404 → モデル文字列が存在しない
invalid_api_key 401 → キーが誤り・欠落・失効
invalid_request_error 400 → 必須フィールドがない
invalid_request_error --- → パラメータの値が受け付けられない
max_tokens ⚠️ 黙って無視される——下記参照
高くつくほう:max_tokens が効かない
16 トークンを要求して 2,614 課金された。 finish_reason は length ではなく stop で返ってくるので、上限が無視されたことをレスポンス側から知る手がかりは何もない。
openai/gpt-6-astra に対して、毎回同じプロンプトで計測:
| 要求値 | 実際の返却 | finish_reason |
|---|---|---|
max_tokens: 16 | 2,614 | stop |
max_tokens: 50 | 2,913 | stop |
max_tokens: 100 | 2,667 | stop |
max_completion_tokens: 50 | 2,944 | stop |
返却されたトークン数と要求値のあいだに関係はない。OpenAI の推論モデルが通常受け付けるパラメータである max_completion_tokens に切り替えても、何も変わらない。
これはゲートウェイではなく Astra 固有の挙動だ。 同じエンドポイントに同じリクエストを GPT-5.6 Sol へ投げると、正しく動く:
| モデル | max_tokens: 50 | finish_reason |
|---|---|---|
openai/gpt-5.6-sol | 50 を返却 | length |
openai/gpt-6-astra | 2,913 を返却 | stop |
Sol は打ち切って length と報告する。Astra は無視して stop と報告する。
いくらかかるか。 出力 100 万トークンあたり $50 なので、50 トークン($0.0025)で見積もったリクエストが 2,900 トークン($0.145)返ってくれば、見積もりの 58 倍だ。そんな呼び出しを 1 万回ループさせれば、予算 $25 に対して請求 $1,450 になる。max_tokens の上に組んだコストガードがあるなら、このモデルでは何も守っていない。
今日できる代替策:
- プロンプトで長さを縛る。「一文で答えて」は実際に効く。
max_tokensは効かない。 reasoning.effortを下げる。 推論トークンは出力単価で課金され、超過分の大半はここだ。- リクエストではなく
usageで警報を出す。 すべてのレスポンスからcompletion_tokensを読み、合計に対してアラートを張る。ここではリクエストのパラメータは支出管理の手段になっていない。 - プロバイダが対応しているなら、ゲートウェイ層かアカウント層で上限を設ける。 リクエスト単位のレバーが効いていない以上、そうするしかない。
この挙動はどこにも文書化されているのを見つけられなかったので、仕様ではなく計測結果として扱ってほしい——設計に織り込む前に自分でもう一度確かめ、予告なく変わりうると考えておくこと。
エラー一覧と実際のレスポンス本文
model_not_found
{"error":{"message":"Model 'gpt-6' not found","type":"model_not_found","code":404}}
その文字列はカタログに存在しない。 有効な識別子:
openai/gpt-6-astra- エイリアスとして
gpt-6-astraとgpt-6-astra-2026-09-03
ここに行き着く典型的なパターンが二つある:
単なる gpt-6。 404 になる。OpenAI 自身の API は場合によって短い名前をエイリアス解決するが、ゲートウェイは推測しない。
ティア接尾辞。 gpt-6-astra-sol も同じ 404 を返す:
{"error":{"message":"Model 'gpt-6-astra-sol' not found","type":"model_not_found","code":404}}
GPT-5.6 は Sol・Terra・Luna として出荷された。GPT-6 にティアはない——Astra と Astra Pro だけだ。ティアを付け足してモデル文字列を組み立てるルーターや設定テンプレートは、この世代では必ず失敗する。この命名変更が他に何を壊すかは世代間比較で扱っている。
invalid_api_key
{"error":{"message":"Invalid or expired API key","type":"invalid_api_key","code":401}}
キーが間違っている、失効している、あるいは別アカウントのものだ。 Authorization が Bearer <key> になっているか、そしてそのキーが環境から実際に読み込まれていて黙って空になっていないかを確認すること——空の変数はヘッダー欠落のエラーではなくこのエラーを出すので、みんな別の層を探しに行ってしまう。
問題が生の API 呼び出しではなく Codex CLI 側のものなら、Codex CLI 401 Unauthorized にそちらの認証経路の違いをまとめてある。
invalid_request_error —— フィールド欠落
{"error":{"message":"Missing required parameter: 'messages' is required. [ofox.ai]","type":"invalid_request_error","code":400}}
必須フィールドが欠けている。 末尾の [ofox.ai] に目を留めておくといい。これは上流から中継されたのではなく、ゲートウェイ側で生成されたエラーであることを示す。どの層がリクエストを弾いたのかを切り分けるとき、このタグはリクエストがそもそもゲートウェイから出ていないことを教えてくれる。
invalid_request_error —— パラメータ値が不正
{"error":{"code":null,"message":"Unsupported value: 'reasoning_effort' does not support 'ultra' with this model. Supported values are: 'none', 'low', 'medium', 'high', and 'xhigh'.","param":null,"type":"invalid_request_error"}}
モデルが受け付けない値を送っている。 フィールド欠落とは別物で、フィールドは存在するが値のほうが存在しない。
ただしその一覧を信用してはいけない。 エラーは 5 つの値を挙げ、max を落としている。6 つすべてをライブのエンドポイントで試したところ、どれも正常に補完を返した:
| effort | 結果 |
|---|---|
none | ✅ 補完が返る |
low | ✅ |
medium | ✅ |
high | ✅ |
xhigh | ✅ |
max | ✅ エラーメッセージにないのに動く |
つまりこのエラー文は権威ではなく、古いか不完全だということだ。max は実在する設定で——レビュー記事では、それがなぜ選ぶべき設定であることが少ないのかを扱っている。第三者の計測では high より指数で 1 点上なだけで、コストはおよそ倍になる。
エラーではないもの
レスポンスが長いのは失敗ではない。 上の max_tokens の挙動を踏まえると、このモデルで最もよく上がる「何かおかしい」という報告は、想定よりはるかに長いレスポンスだ。それは現状のモデルが正常に動いている姿であり、請求もそのとおりになる。
推論トークンだけあって content が空、というのも失敗ではない。 推論モデルでは、上限が低いと目に見えるテキストが出る前に推論で使い切られ、content が空のまま completion_tokens_details.reasoning_tokens だけが埋まることがある。リトライではなく上限を上げるべきだ。とはいえ——Astra ではそもそもその上限が守られていないので、この症状を見たらどちらの原因かを決めつける前に usage を確認してほしい。
通るリクエスト
curl -X POST https://api.ofox.ai/v1/chat/completions \
-H "Authorization: Bearer $OFOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-6-astra",
"messages": [{"role": "user", "content": "Answer in one sentence: what is quicksort?"}],
"reasoning": {"effort": "high"}
}'
何が効いているかに注目してほしい。長さの制約は max_tokens ではなくプロンプトに書かれている。これをループに広げる前に、レスポンスの usage.completion_tokens を読んで想定と突き合わせること。
何が呼べていくらなのかは、このページではなく GET https://api.ofox.ai/v1/models が権威だ。
関連記事
- GPT-6 Astra の API 価格——上のトークンが実際いくらになるか。272K 長コンテキストの追加料金も含む。
- GPT-6 Astra レビュー——独立ベンチマークの全体像と、effort 段階ごとのコスト曲線。
- Codex・Cursor・Cline・DSH での GPT-6 Astra——エージェントごとの動く設定。
- GPT-5.6 model not available——前世代における同種の命名問題。Codex と ChatGPT アカウントの組み合わせのケースも含む。
出典
このページのエラーレスポンス本文はすべて、2026 年 9 月 6 日に Ofox の /v1/chat/completions エンドポイントへ実際にリクエストを投げて取得した。max_tokens の計測は openai/gpt-6-astra への 4 リクエストと openai/gpt-5.6-sol への対照 1 リクエストで、プロンプトは同一、検証対象のパラメータだけを変えている。1 日・1 経路の小さなサンプルであって仕様ではないので、これを土台にコストモデルを組む前に自分のアカウントで確認してほしい。OpenAI 直結を含む他の経路では、エラー文は別のフォーマットになる。
よくある質問
- GPT-6 Astra が model_not_found を返すのはなぜ?
- そのモデル文字列がカタログに存在しないからです。レスポンスは {"error":{"message":"Model 'gpt-6' not found","type":"model_not_found","code":404}}。Ofox で有効な文字列は openai/gpt-6-astra で、エイリアスは gpt-6-astra と gpt-6-astra-2026-09-03。単なる gpt-6 は 404 になり、gpt-6-astra-sol のようなティア接尾辞も同様です——GPT-6 に Sol・Terra・Luna といったティアはありません。
- GPT-6 Astra は max_tokens を守る?
- 守りません。そしてこれがこのページで最も高くつく話です。max_tokens 16 を要求したところ、補完トークン 2,614 が課金され、finish_reason は length ではなく stop でした。max_completion_tokens も同じ挙動で、50 を要求して 2,944。同じゲートウェイ上の GPT-5.6 Sol は max_tokens を正確に守り、50 トークンを finish_reason length で返します。つまりこれはエンドポイントではなく Astra 固有の挙動です。
- GPT-6 Astra が受け付ける reasoning effort の値は?
- 2026 年 9 月 6 日の検証では、none、low、medium、high、xhigh、max のすべてが正常に補完を返しました。無効な値を送るとエラーになり、そのメッセージには 'none'、'low'、'medium'、'high'、'xhigh' しか列挙されません——しかし max はその一覧にないのに動くので、このエラー文は権威ある情報ではなく不完全なものとして扱うべきです。
- GPT-6 Astra エンドポイントの invalid_api_key は何を意味する?
- キーが間違っている、失効している、あるいは別アカウントのものだということです。レスポンスは {"error":{"message":"Invalid or expired API key","type":"invalid_api_key","code":401}}。環境変数が空の場合もヘッダー欠落ではなくこのエラーになるため、多くの人が見当違いの場所を調べることになります。
- Missing required parameter messages is required はどう直す?
- リクエストボディに messages 配列がありません。レスポンスは {"error":{"message":"Missing required parameter: 'messages' is required. [ofox.ai]","type":"invalid_request_error","code":400}}。末尾の [ofox.ai] に注目してください——これは上流から中継されたものではなく、ゲートウェイ側で生成されたエラーであることを示す印で、どの層に弾かれたのかを切り分けるとき役に立ちます。
- GPT-6 Astra は Ofox で使える?
- はい、2026 年 9 月 5 日から openai/gpt-6-astra として利用できます。入力 100 万トークンあたり $10.00、出力 $50.00、キャッシュ読み取り $1.00、書き込み $12.50 で、/v1/chat/completions と /v1/responses の両方に対応します。


