tonhowtf/omniget · error
Pinterest: (HTTP )
Error message
Pinterest: {} (HTTP {}) What it means
Catch-all for Pinterest error responses that are neither 404 nor 401/403: the client throws "Pinterest: {message} (HTTP {code})" carrying Pinterest's error message and status. It signals an upstream API failure outside the specifically handled cases.
Solutions
- Read the HTTP code in the message: retry with exponential backoff for 429/5xx, fix the request for 4xx.
- Throttle request rate and add jitter if you see 429 repeatedly.
- Check Pinterest's status/platform for ongoing incidents on 5xx.
- Validate request parameters/URLs for 400 responses.
Defensive patterns
Strategy: retry
Try / catch
match fetch() {
Err(e) if e.to_string().contains("(HTTP 429)") || e.to_string().contains("(HTTP 5") => {
tokio::time::sleep(backoff).await; // exponential backoff + jitter
retry();
}
other => other?,
} Prevention
- Rate-limit requests to Pinterest (token bucket or fixed spacing) to avoid 429s.
- Implement exponential backoff with jitter for 429/5xx responses.
- Differentiate 4xx (fix request) from 429/5xx (retry) using the code in the message.
- Monitor Pinterest status for outages before large batch runs.
When it happens
Trigger: Pinterest responding with any other error status — 429 rate limiting, 5xx server errors, 400 bad request — with a JSON body containing an error message.
Common situations: Request bursts hitting Pinterest rate limits (429); temporary Pinterest outages (5xx); malformed parameters rejected with 400; region-blocked requests.
Related errors
- nao foi possivel consultar releases de
- o Goodreads recusou o pedido de export
- HTTP ao acessar pin
- YouTube não retornou URL
- HTTP
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/7d839b8ab1e6f5a7.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/pinterest/api.rs:923
.as_str()
.or_else(|| rr["error"]["message"].as_str())
.unwrap_or("resposta sem status de sucesso");
let code = rr["error"]["http_status"]
.as_u64()
.unwrap_or(status.as_u16() as u64);
if code == 404 {
return Err(anyhow!(
"nao encontrado no Pinterest (privado, removido ou URL errada): {}",
msg
));
}
if code == 401 || code == 403 {
return Err(anyhow!(
"o Pinterest negou o acesso ({}); para boards secretos informe os cookies",
msg
));
}
return Err(anyhow!("Pinterest: {} (HTTP {})", msg, code));
}
let bookmark = body["resource"]["options"]["bookmarks"]
.as_array()
.and_then(|a| a.first())
.and_then(|b| b.as_str())
.map(|b| b.to_string())
.or_else(|| rr["bookmark"].as_str().map(|b| b.to_string()))
.filter(|b| b != "-end-" && !b.starts_with("Y2JOb25lO"));
return Ok((rr["data"].clone(), bookmark));
}
}
pub async fn pin(&self, id: &str) -> anyhow::Result<Pin> {
let (data, _) = self
.resource(
"Pin",
json!({ "id": id, "field_set_key": "detailed" }),
&format!("/pin/{}/", id),View on GitHub (pinned to 8600b91f42)