The exact `The '<model>' model is not supported when using Codex with a ChatGPT account.` 400 classified as format_error, so a two-entry openai-codex pool never tried its second account: the turn failed as a malformed request even though the other account was entitled (#71970). #106475 covered the single-credential case and explicitly left the multi-entry case to rotation, but no rotation branch existed for it. - classify the exact normalized text as FailoverReason.model_entitlement (rotate + fallback, never retry); arbitrary 400s stay format_error - recover_with_credential_pool rotates once on that reason; the pool records it through the existing model_cooldowns path (Anthropic per-model 429), so only (credential, model) is benched: other models keep using the account, and `hermes auth` reset clears the marker with everything else - _mark_entitlement_rejected_model gates on pool.has_available(model=...) instead of entry count, so once every account rejects the model it falls back to the #106475 session marker (fallback walk skips it, no oscillation) Salvages the design of #71973 by @kilhyeonjun on the current classifier tables and the model-cooldown substrate that landed since. Co-authored-by: kilhyeonjun <kboxstar@gmail.com>
2 lines
12 B
Plaintext
2 lines
12 B
Plaintext
kilhyeonjun
|