You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
429 from oneshot-free: pinned iosAppVersion 26.42 is stale (DeepL iOS is 26.52) #236
{"code":429,"message":"too many requests, your IP has been blocked by DeepL temporarily, please don't request it frequently in a short time"}
It is not an IP block. The pinned client profile in translate.go is stale:
iosAppVersion = "26.42"
DeepL's iOS app is now 26.52 (bundle com.linguee.DeepLMobileTranslator, App Store update 2026-09-24). An iOS TLS fingerprint together with a version that is no longer current is an inconsistent profile, which is the condition your own comment above iosOSVersion describes as being answered with 429.
Same host, same IP, back to back:
v1.2.4 as published: 429 on every request
same binary with only 26.42 replaced by 26.52: 200, correct output
The only change was that string:
sed -i 's/26\.42/26.52/g' /app/deeplx
Reproduced both with missuo/deeplx:v1.2.4 (sha256:1e34ae3e...) and with the released deeplx_linux_amd64 binary. Sending it through an HTTP proxy, or running it from a different network, makes no difference, so it is not the egress IP either.
Two things made this harder to spot than it needed to be:
"your IP has been blocked" is DLX's own wording (the 429 branch in translate.go), not DeepL's. It sends you looking in the wrong place.
A plain curl to oneshot-free without the iOS headers and body fields returns 200, but it echoes the input back untranslated. That reads as "the free endpoint is fine" when it is not.
Could the app version be updated in a release, or made overridable? Pinned the way it is, this will break again the next time DeepL ships a version.
Activity
oifj34f34f commentedon Sep 26, 2026
Thanks, it worked!
feat(deepl): 动态获取 DeepL Web App 版本 (#1341)
fix(translate): resolve DeepL iOS app version at runtime
fix(translate): resolve DeepL iOS app version at runtime (#238)