{"record":{"id":"5ff112c7eb23f491","repo":"nautechsystems/nautilus_trader","slug":"get-order-events-failed-e","errorCode":null,"errorMessage":"get_order_events failed: {e}","messagePattern":"get_order_events failed: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/adapters/kraken/src/http/futures/client.rs","lineNumber":1772,"sourceCode":"                ) {\n                    Ok(report) => all_reports.push(report),\n                    Err(e) => {\n                        let order_id = &order.order_id;\n                        log::warn!(\"Failed to parse futures order {order_id}: {e}\");\n                    }\n                }\n            }\n        }\n\n        if !open_only {\n            // Kraken Futures order events API expects Unix timestamp in milliseconds\n            let start_ms = start.map(|dt| dt.as_millisecond());\n            let end_ms = end.map(|dt| dt.as_millisecond());\n            let response = self\n                .inner\n                .get_order_events(end_ms, start_ms, None)\n                .await\n                .map_err(|e| anyhow::anyhow!(\"get_order_events failed: {e}\"))?;\n\n            for event_wrapper in response.order_events {\n                let event = &event_wrapper.order;\n\n                if let Some(ref target_id) = instrument_id {\n                    let instrument = self.get_cached_instrument(&target_id.symbol.inner());\n                    if let Some(inst) = instrument\n                        && inst.raw_symbol().as_str() != event.symbol\n                    {\n                        continue;\n                    }\n                }\n\n                if let Some(instrument) = self.get_instrument_by_raw_symbol(&event.symbol) {\n                    match parse_futures_order_event_status_report(\n                        event,\n                        Some(event_wrapper.event_type),\n                        &instrument,","sourceCodeStart":1754,"sourceCodeEnd":1790,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/kraken/src/http/futures/client.rs#L1754-L1790","documentation":"Wraps a failure of the get_order_events HTTP call used by request_order_status_reports when querying historical order events (with optional start/end time filters). The transport-level request failed, before any API result status is examined.","triggerScenarios":"request_order_status_reports calls inner.get_order_events(end_ms, start_ms, None) for a specific instrument_id or reconciliation window and the HTTP request fails — timeouts, network errors, signing failures.","commonSituations":"Querying very wide time ranges during reconciliation causing timeouts; expired credentials; transient network drops on live trading nodes.","solutions":["Inspect the wrapped source error for the concrete cause.","Narrow the start/end reconciliation window to reduce request size.","Re-check API key/secret validity and permissions.","Retry; if persistent, check Kraken Futures API status and connectivity."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"assert!(end.unwrap_or_default() >= start.unwrap_or_default(), \"event query window invalid\");","typeGuard":null,"tryCatchPattern":"match client.request_order_status_reports(instrument_id, Some(start), Some(end)).await {\n    Ok(r) => r,\n    Err(e) => { warn!(\"order events query failed, retrying: {e:#}\"); sleep(backoff).await; retry(); }\n}","preventionTips":["Keep reconciliation windows narrow to avoid oversized requests/timeouts.","Validate credentials before long-running reconciliation sessions.","Apply exponential backoff on transient transport errors."],"tags":["http","network","kraken","futures","orders"],"backgroundTag":"api-request-failed","analyzedSha":"18893faf8b356be3320add8de2f861b0b647cf06","analyzedAt":"2026-09-08T20:49:34.690Z","contentChangedAt":"2026-09-08T20:49:34.690Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}