{"record":{"id":"db11e2ce92e1fffd","repo":"nautechsystems/nautilus_trader","slug":"pending-ord-type-algo-order-reports-for-inst","errorCode":null,"errorMessage":"Pending {ord_type:?} algo order reports for {inst_type:?} could not be completely converted","messagePattern":"Pending (.+?) algo order reports for (.+?) could not be completely converted","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/adapters/okx/src/http/client.rs","lineNumber":6802,"sourceCode":"                        &mut instruments_cache,\n                        ts_init,\n                        start_ns,\n                        end_ns,\n                        &mut seen,\n                        &mut reports,\n                        &mut ambiguous_triggered_child_ids,\n                    )\n                    .await\n                {\n                    Ok(complete) => complete,\n                    Err(e) if require_complete_active_coverage => {\n                        return Err(OKXPendingAlgoOrderReportsError::new(e).into());\n                    }\n                    Err(e) => return Err(e),\n                };\n\n                if require_complete_active_coverage && !pending_reports_complete {\n                    return Err(OKXPendingAlgoOrderReportsError::new(anyhow::anyhow!(\n                        \"Pending {ord_type:?} algo order reports for {inst_type:?} could not be completely converted\"\n                    ))\n                    .into());\n                }\n                complete &= pending_reports_complete;\n\n                if let Some(lim) = limit\n                    && reports.len() >= lim as usize\n                {\n                    reports.truncate(lim as usize);\n                    return Ok(AlgoOrderReportSweep {\n                        reports,\n                        complete,\n                        ambiguous_triggered_child_ids,\n                    });\n                }\n            }\n","sourceCodeStart":6784,"sourceCodeEnd":6820,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/okx/src/http/client.rs#L6784-L6820","documentation":"Related to 3508 but at the conversion stage: converting raw OKX pending algo order reports into adapter report types reported incomplete conversion coverage (pending_reports_complete=false). With require_complete_active_coverage=true this is escalated to an error, since some live algo orders could not be represented.","triggerScenarios":"Pending algo reports conversion loop signals incomplete (e.g. unknown ord_type payloads, per-item conversion errors) while strict coverage is required.","commonSituations":"New or exotic OKX algo order types the converter does not yet support; malformed/missing fields in OKX responses during exchange API changes.","solutions":["Update/extend conversion logic to cover the failing algo order type","Inspect wrapped OKXPendingAlgoOrderReportsError for the item-level cause","Retry the sweep to rule out transient malformed responses","Drop require_complete_active_coverage only when partial results are acceptable"],"exampleFix":"// before\nmatch convert_pending(raw) { ... Err(_) => complete = false }\n// after\nmatch convert_pending(raw) { Err(e) => return Err(OKXPendingAlgoOrderReportsError::new(e).into()), ... }","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"match client.algo_order_reports(...).await {\n    Err(e) if e.to_string().contains(\"could not be completely converted\") => {\n        let cause = OKXPendingAlgoOrderReportsError::from_err(&e);\n        log_unconverted(cause); // inspect and extend converter\n    }\n    other => other?,\n}","preventionTips":["Keep conversion logic updated for new OKX algo order types","Alert on any incomplete conversion instead of silently dropping items","Test conversion coverage against all ord_types in use"],"tags":["okx","algo-orders","conversion","reconciliation"],"backgroundTag":"unexpected-api-response-shape","analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}