Bumalik sa blog

Pag-troubleshootGabay

Mga karaniwang error sa koneksyon at kung paano ayusin ang mga ito

Ano ang ibig sabihin ng 401, 402, 400, 404, 413, 429 at 503 kapag kumokonekta ka sa CheapTokens API, ano ang hitsura ng mga tugon, at kung paano ayusin ang bawat isa.

Ni CheapTokens TeamNai-publish noong 4 min na pagbabasa

Listahan ng HTTP status codes 401, 402, 400, 404 at 429 na may maiikling paliwanag sa isang terminal
Sa pahinang ito
  1. Mabilisang pagsusuri
  2. 401 — Di-wastong API key
  3. 402 — walang laman na balanse o walang key sa request
  4. 404 — maling address
  5. 400 — hindi mahanap ang model
  6. 413 — masyadong malaki ang request
  7. 429 — masyadong maraming request
  8. 503 — pansamantalang hindi available ang model
  9. Mahahabang paghihintay at timeout

Halos lahat ng problema sa koneksyon ay bumubukod sa apat na bagay: ang address, ang key, ang model ID at ang balanse. Magsimula sa mabilisang pagsusuri sa ibaba, pagkatapos hanapin ang iyong status code. Ang mga response body na sinipi dito ay ang aktwal na mga tugon ng API (Oktubre 2026).

Mabilisang pagsusuri#

bash
# 1. The address is reachable — this request needs no key
curl https://api.cheaptokens.dev/v1/models

# 2. The key and the balance work — a tiny request (costs a fraction of a cent)
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "deepseek-ai/DeepSeek-V4-Flash-0731", "max_tokens": 5,
       "messages": [{"role": "user", "content": "ping"}]}'

Kung nabigo ang unang command, ang dahilan ay maaaring ang network sa iyong panig, isang typo sa address — o ang serbisyo mismo na pansamantalang hindi available. Kung ang pangalawa lang ang nabigo, hanapin ang status code nito sa ibaba. Kung gumagana ang dalawa pero ang iyong tool ay hindi, ihambing ang mga setting ng tool sa dalawang command na ito.

401 — Di-wastong API key#

json
{"error": {"message": "Invalid API key", "type": "authentication_error"}}

Ang mga client sa istilong Anthropic ay nakakakuha ng parehong error sa kanilang format:

json
{"type": "error", "error": {"type": "authentication_error", "message": "Invalid API key"}}

Mga dahilan:

  • ang key ay nakopya na may kulang na karakter, espasyo o quotes;
  • ang key ay ni-rotate sa dashboard — hindi na gumagana ang luma;
  • isang key mula sa ibang serbisyo (halimbawa OpenAI) ang nakatakda sa halip na ang CheapTokens key;
  • ang environment variable ay walang laman sa terminal na ito: ipinapakita ng echo ${#CHEAPTOKENS_API_KEY} ang haba nito.

Ang dashboard ay nagpapakita ng key nang isang beses lamang. Kung nawala ito, pindutin ang Rotate para makakuha ng bago at i-update ito sa lahat ng pinaggagamitan.

402 — walang laman na balanse o walang key sa request#

Nagbabalik ang API ng 402 sa dalawang magkaibang sitwasyon:

  1. Naubos na ang balanse. Ang mga request ay binabayaran mula sa balanse; kapag naubos ito, ang key ay naka-pause. Mag-top up sa dashboard at dadaan na muli ang mga request.
  2. Walang key ang request. Kung ang Authorization header (o x-api-key para sa mga client na istilong Anthropic) ay nawawala, sumasagot ang API ng 402 na may type na insufficient_funds. Tiyakin na talagang nagpapadala ang iyong tool ng key: ang istilong OpenAI ay Authorization: Bearer <key>.

404 — maling address#

json
{"error": {"message": "Invalid URL (GET /v1/chat/completion)", "type": "invalid_request_error", "param": null, "code": null}}

May typo ang path — dito completion sa halip na completions. Iba pang karaniwang dahilan:

  • Walang /v1 ang base URL. Ang mga client na istilong OpenAI ay nangangailangan ng https://api.cheaptokens.dev/v1. Kung walang /v1, hindi naaabot ng request ang API at makakakuha ka ng plain HTML 404 page sa halip na JSON.
  • Doble ang /v1. Ang ilang client ay nagdadagdag mismo ng /v1; kung gayon ang base URL ay dapat ang root, https://api.cheaptokens.dev. Ang mga client na istilong Anthropic ay laging gumagamit ng root address.

400 — hindi mahanap ang model#

json
{"error": {"message": "Model \"deepseek-v4-flash\" not found. Available: …", "type": "invalid_request_error", "param": "model"}}

Ang model ID ay dapat ang buong ID, kasama ang prefix bago ang slash: deepseek-ai/DeepSeek-V4-Flash-0731, hindi deepseek-v4-flash. Hindi mahalaga ang upper o lower case. Ang error message ay naglilista ng mga available na ID, at ang buong listahan ay laging nasa GET /v1/models.

Nagbabalik din ng 400 para sa malformed na request body — halimbawa isang walang laman na messages array (messages field is required and must be a non-empty array) o isang mensaheng walang role.

413 — masyadong malaki ang request#

Ang request body ay limitado sa 16 MB. Maaaring maabot ito ng mga agent sa pamamagitan ng paglalagay ng malalaking file o log sa context. Ipadala lamang ang mga bahaging kailangan ng model at putulin ang mahabang tool output.

429 — masyadong maraming request#

Kung nakatanggap ka ng 429, bumagal. Kasama sa response ang isang Retry-After header na may bilang ng mga segundong dapat hintayin. Ang mga opisyal na OpenAI SDK ay awtomatikong nagre-retry (max_retries); sa sarili mong code, hintayin ang Retry-After bago ang susunod na pagtatangka.

503 — pansamantalang hindi available ang model#

Ang isang model ay maaaring pansamantalang hindi available; sumasagot ang API ng 503 na may type na model_unavailable, at ang model card sa site ay nagpapakita ng "temporarily unavailable". Mag-retry mamaya o palitan ang model field sa ibang model — ang key at ang address ay nananatiling pareho.

Mahahabang paghihintay at timeout#

Ang mga reasoning model tulad ng zai-org/GLM-5.3-Flash ay nag-iisip bago sumagot, kaya ang unang token ay maaaring tumagal. Gumamit ng streaming o taasan ang client timeout — halimbawa timeout=120 sa OpenAI SDK.