Got an errorCode from a Youdao Zhiyun translation / dictionary / OCR / TTS call? Get three things straight first - is it a client-side parameter / signature issue or a server / billing one, is the sign string order and encoding right, and did you blow past your QPS. Look up the code or keyword you got (e.g. 202, 411, 108, signature, rate limit, timestamp): first the L1 official meaning, then the L2 root cause & fix, then the rival comparison and real cases. Need the official docs? See Youdao Zhiyun API error codes / integration guide .
Step 1: triage by error-code band (L1 - whose fault is it)
Youdao Zhiyun errorCodes fall into four bands - locate the band first, don't guess: (1) 1xx parameters (101 missing / 102 language / 103 too long / 113 empty q / 116 strict) - check required fields and values client-side; (2) 2xx auth & signature (108 app ID / 202 signature / 203 IP / 205 platform / 206 timestamp / 207 replay) - check the sign string and credentials; (3) 3xx/5xx server-side (303 / 500 / 902000) - retry with the request_id or file a ticket; (4) 4xx account/billing/rate-limit (401 arrears / 411 / 412) - check balance and QPS. Fuller integration notes: Youdao API v3 signature & 202 troubleshooting .
Parameters (
101 . 102 . 103 . 113 . 116): Client-side check: all required fields present (q/from/to/appKey/sign/signType/curtime/salt), language codes like zh-CHS / en / auto, q non-empty and within length, strict is true/false.Auth / signature (
108 . 111 . 202 . 203 . 205 . 206 . 207): SHA256 the sign string appKey+input+salt+curtime+appSecret; curtime in second-level UTC, UUID salt for anti-replay; align the IP allowlist and app platform type.Service / instance (
110 . 310): One app must bind each service instance it uses (translation / TTS / OCR are separate); domain translation must be enabled in the console first.Account / billing / rate limit (
401 . 411 . 412): Don't run out of balance / character packs (401 = arrears, service stops); exceeding QPS (~100 base) returns 411 - rate-limit with a token bucket + exponential backoff.
-
Result / decrypt / other (
201 . 303 . 500 . 902000): Retry server-side errors with the request_id or file a ticket; for encrypted endpoints check the DES / BASE64 / URLDecode order.
Step 2: the two most common traps -> root cause (L2 - 202 signature & 411 rate limit)
Key idea: 90% of Youdao API errors get stuck on “202 signature” and “411 rate limit”. 202 is rarely a wrong key - usually the v3 sign string is wrong: sign = sha256(appKey + input + salt + curtime + appSecret), where input = first 10 chars + q length + last 10 chars when q is longer than 20 (counted in Unicode characters, not bytes), or q itself when 20 or fewer; then add UTF-8 encoding, order, and stray whitespace. 411 means you exceeded your plan's QPS - rate-limit and back off client-side. The diagram is a pre-call self-check panel; below it are the rival comparison and 2026 estimates.
Rival translation API comparison (signature / error codes / free quota . public docs)
| Service | Signature / auth | Error-code style | Free quota (est.) | QPS / rate (est.) |
|---|---|---|---|---|
| Youdao Zhiyun | SHA256 . v3 (appKey+input+salt+curtime+secret) | 3-digit (101 / 202 / 411) | trial quota per service | ~100 QPS base (expandable) |
| Baidu Translate | MD5 32-char lower (appid+q+salt+key) | 5xxxx (52001 / 54001 / 54003 / 58001) | free standard tier | standard 1 / advanced 10 / premium 100 |
| Tencent Cloud TMT | TC3-HMAC-SHA256 | string (RequestLimitExceeded / NoFreeAmount) | 5M chars / month | 5 req/sec default |
| Alibaba Cloud MT | HMAC (RPC / ROA common signature) | string (e.g. InvalidApiKey) | monthly free quota (by tier) | by QPS quota |
| Google Cloud Translation | API Key / OAuth2 | HTTP status + reason (403 / 429) | first 500k chars / month (v2) | per-project quota |
| DeepL API | DeepL-Auth-Key header | HTTP (403 / 456 / 429) | Free 500k chars / month | per-plan quota |
Translation API error handling & quota comparison (2026 estimate)
The following are 2026 estimates synthesized from each vendor's official open-platform docs (Youdao Zhiyun, Baidu, Tencent Cloud, Alibaba Cloud, Google, DeepL) - not vendor commitments, not first-hand measurement; for reference only, quota and QPS shift with vendor policy:
| Dimension | Estimate / comparison |
|---|---|
| Signature algorithm (auth) | Youdao SHA256(v3) . Baidu MD5 . Tencent TC3-HMAC-SHA256 . Alibaba HMAC . Google API Key . DeepL Auth-Key header |
| Free quota (per month . est.) | Tencent 5M chars > Google / DeepL 500k chars each > Baidu free standard tier (QPS=1); Youdao has trial quota per service, see console |
| QPS / rate cap (est.) | Youdao ~100 base (expandable) . Baidu standard 1 / advanced 10 / premium 100 . Tencent 5 req/sec default |
| Max text length (est.) | Youdao LLM / document endpoint i ≤ 5000 chars . Tencent < 6000 chars per call (long text -> document / batch endpoint) |
| Most common error codes (community . est.) | 202 signature > 411 rate limit > 108 / 110 binding > 206 timestamp dominate |
Estimate basis: sourced baseline + time extrapolation (Youdao Zhiyun / Baidu / Tencent / Alibaba / Google / DeepL official open-platform docs, 2026); shifts with each vendor's policy and version. Rely on each vendor's latest official console.
Real-world cases - quick read
Works locally, mass 206 after moving to cloud / containers: container clock drift invalidates curtime (signature is valid ~120s) -> enable NTP, sync the container to the host clock, don't cache an old curtime.
English fine, long Chinese intermittently 202: truncate sliced multi-byte Chinese by byte -> input must count Unicode characters (q>20: first 10 chars + q length + last 10 chars).
Hard-coded or incrementing salt, 207 on the second call: salt must be random each time (UUID) with a fresh curtime; re-sign on retry, never resend as-is.
Mass 411 under load testing: base QPS is ~100 - exceed it and you're throttled -> token-bucket rate limit + exponential backoff client-side, or buy extra QPS in the console.
New app calling TTS pronunciation returns 110: the translation instance is bound but the speech-synthesis (TTS) instance isn't -> bind each service instance to the app in the console.
Everything suddenly 401: the character pack / balance ran out and service stopped -> top up or buy a pack and set a balance alert; keep a fallback channel for critical paths.
A trap carried over from Baidu: URL-encoding q before building the sign -> Youdao v3 uses input (the truncation rule) in the signature, not a pre-encoded q; sign first, then URL-encode q when sending.
Related
Youdao API developer tools (sister site)
More: Youdao













