{"record":{"id":"bc282a5ce545fb26","repo":"nautechsystems/nautilus_trader","slug":"generate-order-status-report-requires-venue-order","errorCode":null,"errorMessage":"generate_order_status_report requires venue_order_id","messagePattern":"generate_order_status_report requires venue_order_id","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/adapters/polymarket/src/execution/reports.rs","lineNumber":518,"sourceCode":"                Ok(None) => {\n                    log::warn!(\"Order {venue_order_id_str} not found (empty response)\");\n                }\n                Err(e) => {\n                    log::warn!(\"Failed to query order {venue_order_id_str}: {e}\");\n                }\n            }\n            Ok(())\n        });\n    }\n\n    pub(super) async fn generate_order_status_report_impl(\n        &self,\n        cmd: &GenerateOrderStatusReport,\n    ) -> anyhow::Result<Option<OrderStatusReport>> {\n        let Some(venue_order_id) =\n            self.resolve_venue_order_id(cmd.venue_order_id, cmd.client_order_id)\n        else {\n            anyhow::bail!(\"generate_order_status_report requires venue_order_id\");\n        };\n\n        let Some(instrument_id) = cmd.instrument_id else {\n            anyhow::bail!(\"generate_order_status_report requires instrument_id\");\n        };\n\n        let authority = self.resolve_target_order_authority(\n            cmd.client_order_id,\n            venue_order_id,\n            Some(instrument_id),\n        )?;\n        let cached_authority = authority\n            .client_order_id\n            .map(|_| authority.require_cached_base_limit(venue_order_id).cloned())\n            .transpose()?;\n        let instrument = self\n            .core\n            .cache()","sourceCodeStart":500,"sourceCodeEnd":536,"githubUrl":"https://github.com/nautechsystems/nautilus_trader/blob/18893faf8b356be3320add8de2f861b0b647cf06/crates/adapters/polymarket/src/execution/reports.rs#L500-L536","documentation":"generate_order_status_report_impl requires a venue order id to query Polymarket. resolve_venue_order_id could not derive one from cmd.venue_order_id or cmd.client_order_id, so the request is rejected before any HTTP call.","triggerScenarios":"Calling generate_order_status_report with a GenerateOrderStatusReport that has neither venue_order_id set nor a client_order_id that resolve_venue_order_id can map to a venue order id.","commonSituations":"Constructing the report request manually with only an instrument_id; a client_order_id that was never registered with the venue so no mapping exists; dropping the venue_order_id from a persisted report before requesting a status refresh.","solutions":["Set cmd.venue_order_id to the id returned when the order was submitted.","Provide a resolvable client_order_id (one previously registered/submitted through this client) so resolve_venue_order_id can map it.","Look up the venue order id from persisted order state or a prior OrderStatusReport before issuing the request."],"exampleFix":"// before\nlet cmd = GenerateOrderStatusReport { instrument_id: Some(instrument_id), ..Default::default() };\n// after\nlet cmd = GenerateOrderStatusReport { venue_order_id: Some(venue_order_id), instrument_id: Some(instrument_id), ..Default::default() };","handlingStrategy":"validation","validationCode":"// Rust: require an order identifier before building the request\nfn status_cmd_ready(cmd: &GenerateOrderStatusReport) -> bool {\n    cmd.venue_order_id.is_some() || cmd.client_order_id.is_some()\n}\nassert!(status_cmd_ready(&cmd));","typeGuard":"fn has_order_id(cmd: &GenerateOrderStatusReport) -> Option<VenueOrderId> {\n    cmd.venue_order_id.or(cmd.client_order_id.map(resolve_from_registry))\n}","tryCatchPattern":null,"preventionTips":["Persist venue_order_id from the submit response together with the client_order_id.","Never construct GenerateOrderStatusReport from records lacking an order identifier.","Keep a client_order_id -> venue_order_id registry populated on every order submission."],"tags":["polymarket","order-status","missing-argument","rust"],"backgroundTag":"missing-required-argument","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"}