tonhowtf/omniget · error
e
Error message
e
What it means
Inside the configure retry loop, errors matching IgError::Other containing 'Transcode', 'not ready', or '202' are treated as retryable and stored as the last error (anyhow!(e)); if all retries are exhausted this message is returned. It surfaces the raw transcode/pending message from Instagram.
Solutions
- Increase the number of retries or the sleep duration (4 + attempt*3 seconds)
- Re-encode the video to smaller dimensions/bitrate so transcoding completes faster
- Verify with the stored message whether processing eventually succeeds on a manual reconfigure
Example fix
// before last = Some(anyhow!(e)); // after (bounded but longer window) tokio::time::sleep(std::time::Duration::from_secs(4 + attempt * 5)).await; // and allow more attempts
Defensive patterns
Strategy: retry
Validate before calling
// prefer shorter, standard-encoded videos that transcode quickly assert!(file_size_mb <= 100 && duration_secs <= 60);
Try / catch
loop with attempt cap: if error contains "Transcode"/"not ready"/"202", sleep with exponential backoff up to N attempts, then surface the last transcode message
Prevention
- Compress videos before upload to shorten transcoding
- Set a bounded but generous retry budget
- Monitor Instagram processing latency and adjust backoff
When it happens
Trigger: Instagram repeatedly reports the video as transcoding/not-ready (or HTTP 202) for every retry attempt in publish_web's video path.
Common situations: Very large or long videos taking longer than the retry window to process, or Instagram-side processing delays.
Understand the failure class
Background: Request timed out: what client-side request timeouts mean across libraries (Request timed out, TIMED_OUT, APITimeoutError) — this error's family across 39 libraries.
Related errors
- configure
- o Instagram nao confirmou o video
- a API oficial so aceita URLs publicas (https://…) para os…
- agendamento sem token da API
- Could not extract data from embed
AI-assisted analysis of tonhowtf/omniget@8600b91f42 (2026-09-12).
Data as JSON: /api/errors/e011675e680bc496.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/instagram/publish.rs:450
));
// O Instagram pode ainda estar transcodificando: tenta algumas vezes.
let mut last = None;
for attempt in 0..6 {
match client
.post_form("/api/v1/media/configure_to_clips/?video=1", &form)
.await
{
Ok(json) if s(&json, "status") == "ok" => {
report("done", 3, 3);
return Ok(result_of(&json));
}
Ok(json) => last = Some(anyhow!("configure: {}", json)),
Err(IgError::Other(e))
if e.contains("Transcode")
|| e.contains("not ready")
|| e.contains("202") =>
{
last = Some(anyhow!(e));
}
Err(e) => return Err(m(e)),
}
tokio::time::sleep(std::time::Duration::from_secs(4 + attempt * 3)).await;
}
Err(last.unwrap_or_else(|| anyhow!("o Instagram nao confirmou o video")))
}
"carousel" => {
if req.files.len() < 2 || req.files.len() > 20 {
return Err(anyhow!("um carrossel tem de 2 a 20 arquivos"));
}
let total = req.files.len() as u64 + 1;
let sidecar_id = upload_id();
let mut children: Vec<Value> = Vec::new();
for (i, f) in req.files.iter().enumerate() {
report("upload", i as u64, total);
let path = Path::new(f);
let uid = format!("{}{}", upload_id(), i);View on GitHub (pinned to 8600b91f42)