tonhowtf/omniget · error · anyhow

a conta do Trakt está bloqueada; fale com o suporte deles

Error message

a conta do Trakt está bloqueada; fale com o suporte deles

What it means

get_page translates HTTP 423 (Locked) from the Trakt API into this error. It means Trakt has locked/banned the account, so no list data can be fetched; the library refuses to retry because the condition won't self-heal.

Solutions

  1. Contact Trakt support (support@trakt.tv) to appeal the account lock
  2. Log in on trakt.tv to confirm the account state and any ban notice
  3. Revoke and re-authenticate the app after the account is unlocked (new access token)
  4. If the lock is permanent, use a different account and re-connect via the device-code flow
Defensive patterns

Strategy: try-catch

Validate before calling

let c = trakt_config::load();
if c.account_locked_reported { return Err("Trakt account previously reported locked"); }

Try / catch

if let Err(e) = trakt_lists::run(&opts, &progress) {
    if e.to_string().contains("bloqueada") {
        // stop all automated Trakt activity; direct user to Trakt support
    }
}

Prevention

When it happens

Trigger: Any get_page call (via get_all) that receives HTTP 423 from api.trakt.tv — the authenticated access token belongs to an account blocked by Trakt moderation/abuse systems.

Common situations: Account flagged for ToS violations or suspicious automated activity; token reused after the account was suspended; shared accounts locked by Trakt support.

Related errors


AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12). Data as JSON: /api/errors/8d6edf83e22610e8. Report an issue: GitHub.

Appendix: source

Thrown at src-tauri/omniget-core/src/core/tools/lists/trakt.rs:493

                )
                .send()
                .await?;
            let status = r.status();
            if status.as_u16() == 401 {
                return Err(anyhow!(
                    "o Trakt recusou o token (401). Reconecte a conta no botão acima"
                ));
            }
            if status.as_u16() == 426 {
                return Err(anyhow!("esse recurso é só para contas VIP do Trakt"));
            }
            if status.as_u16() == 420 {
                return Err(anyhow!(
                    "a conta do Trakt bateu no limite do plano gratuito (HTTP 420)"
                ));
            }
            if status.as_u16() == 423 {
                return Err(anyhow!(
                    "a conta do Trakt está bloqueada; fale com o suporte deles"
                ));
            }
            if status.as_u16() == 429 || status.is_server_error() {
                if attempt == 4 {
                    return Err(anyhow!("o Trakt está limitando o acesso (HTTP {})", status));
                }
                let retry = r
                    .headers()
                    .get(reqwest::header::RETRY_AFTER)
                    .and_then(|v| v.to_str().ok())
                    .and_then(|v| v.trim().parse::<u64>().ok())
                    .map(Duration::from_secs);
                tokio::time::sleep(retry.unwrap_or(wait)).await;
                wait *= 2;
                continue;
            }
            if !status.is_success() {

View on GitHub (pinned to 8600b91f42)