tonhowtf/omniget · error
configure
Error message
configure: {} What it means
After uploading a video, publish_web polls Instagram's configure endpoint; when the response status is not 'ok' it stores 'configure: <json body>' as the last error. This means Instagram rejected or has not finished processing the video configure call.
Solutions
- Inspect the JSON body after 'configure: ' for the real Instagram error code/message
- Increase retry attempts / backoff window for slow transcodes
- Re-encode the video to Instagram-friendly settings (H.264/AAC MP4, correct duration/aspect)
- If the body shows a hard rejection, fix the media rather than retrying
Defensive patterns
Strategy: retry
Validate before calling
// ensure media is within Instagram constraints before upload assert!(duration_secs >= 3.0 && duration_secs <= 90.0); assert!(matches!(codec, "h264"));
Try / catch
match configure_result { Ok(json) if status(&json) != "ok" => { let body = json.to_string(); if is_pending(&body) { backoff_and_retry() } else { return Err(anyhow!("hard rejection: {body}")) } }, ... } Prevention
- Encode videos to Instagram-recommended settings
- Allow generous retry windows for large videos
- Parse the configure JSON for the specific error code before deciding to retry
When it happens
Trigger: Video configure response with status != 'ok' across retries — e.g. media still transcoding, 202-style pending responses that don't match the retry guard, or an outright rejection.
Common situations: Long videos still processing server-side, Instagram API instability, or videos violating constraints (duration, codec) causing a hard configure rejection.
Understand the failure class
Background: "invalid response format", "malformed payload", "missing data field": when an API returns 200 but the response shape is wrong — this error's family across 23 libraries.
Related errors
- e
- 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/9a411a2d158f7987.
Report an issue: GitHub.
Appendix: source
Thrown at src-tauri/omniget-core/src/core/tools/instagram/publish.rs:444
if req.share_to_feed || req.kind == "video" {
"1"
} else {
"0"
}
.into(),
));
// 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;View on GitHub (pinned to 8600b91f42)