{"record":{"id":"becdfe0e071627f3","repo":"tonhowtf/omniget","slug":"esse-recurso-s-para-contas-vip-do-trakt","errorCode":null,"errorMessage":"esse recurso é só para contas VIP do Trakt","messagePattern":"esse recurso é só para contas VIP do Trakt","errorType":"exception","errorClass":"anyhow","httpStatus":426,"severity":"error","filePath":"src-tauri/omniget-core/src/core/tools/lists/trakt.rs","lineNumber":485,"sourceCode":"                .http\n                .get(&url)\n                .header(\"Content-Type\", \"application/json\")\n                .header(\"trakt-api-version\", \"2\")\n                .header(\"trakt-api-key\", &self.client_id)\n                .header(\n                    reqwest::header::AUTHORIZATION,\n                    format!(\"Bearer {}\", self.token),\n                )\n                .send()\n                .await?;\n            let status = r.status();\n            if status.as_u16() == 401 {\n                return Err(anyhow!(\n                    \"o Trakt recusou o token (401). Reconecte a conta no botão acima\"\n                ));\n            }\n            if status.as_u16() == 426 {\n                return Err(anyhow!(\"esse recurso é só para contas VIP do Trakt\"));\n            }\n            if status.as_u16() == 420 {\n                return Err(anyhow!(\n                    \"a conta do Trakt bateu no limite do plano gratuito (HTTP 420)\"\n                ));\n            }\n            if status.as_u16() == 423 {\n                return Err(anyhow!(\n                    \"a conta do Trakt está bloqueada; fale com o suporte deles\"\n                ));\n            }\n            if status.as_u16() == 429 || status.is_server_error() {\n                if attempt == 4 {\n                    return Err(anyhow!(\"o Trakt está limitando o acesso (HTTP {})\", status));\n                }\n                let retry = r\n                    .headers()\n                    .get(reqwest::header::RETRY_AFTER)","sourceCodeStart":467,"sourceCodeEnd":503,"githubUrl":"https://github.com/tonhowtf/omniget/blob/8600b91f4246848bac346874daa9e61c1fc5677a/src-tauri/omniget-core/src/core/tools/lists/trakt.rs#L467-L503","documentation":"Thrown by TraktLists::get_page when Trakt returns HTTP 426 (Upgrade Required) for an authenticated list request. Trakt restricts certain resources (notably some list/watchlist features) to VIP accounts, so a free account cannot access them.","triggerScenarios":"Requesting a VIP-only Trakt resource with a free-account token and receiving HTTP 426.","commonSituations":"Free Trakt users syncing lists that require VIP; a resource that used to be free became VIP-only; testing with a non-VIP account.","solutions":["Upgrade to Trakt VIP or use an account with VIP status","Avoid requesting VIP-only endpoints/resources with free accounts (feature-gate in the UI)","If you believe the resource should be accessible, verify the exact endpoint's requirements in Trakt's API docs"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"// feature-gate VIP-only resources before requesting them\nif !account.is_vip && resource.requires_vip {\n    return Err(\"este recurso exige Trakt VIP\".into());\n}","typeGuard":null,"tryCatchPattern":"match get_page(url).await {\n    Err(e) if e.to_string().contains(\"VIP\") => {\n        // hide the feature or show an upsell message\n    }\n    other => other?,\n}","preventionTips":["Know which Trakt endpoints require VIP and gate them in the UI","Cache account tier after connect and re-check periodically","Offer a clear fallback for free accounts"],"tags":["trakt","http","vip","paywall"],"backgroundTag":"http-error-response","analyzedSha":"8600b91f4246848bac346874daa9e61c1fc5677a","analyzedAt":"2026-09-12T14:29:19.317Z","contentChangedAt":"2026-09-12T14:29:19.317Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}