nautechsystems/nautilus_trader · error

{VENUE_EXECUTION_REPORTS_UNSUPPORTED}

Error message

{VENUE_EXECUTION_REPORTS_UNSUPPORTED}

What it means

The blockchain execution client does not support on-demand order status report generation; generate_order_status_report is an unsupported trait method that always fails with the venue-unsupported constant. Execution reports are not available for this venue.

Source

Thrown at crates/adapters/blockchain/src/execution/client.rs:6240

    async fn disconnect(&mut self) -> anyhow::Result<()> {
        self.pending_tasks.begin_shutdown();
        let tasks_result = self
            .pending_tasks
            .finish_shutdown(Duration::from_secs(5), Duration::from_secs(2))
            .await;
        self.signer = None;
        self.core.set_disconnected();
        tasks_result
            .map(|_| ())
            .map_err(|e| anyhow::anyhow!("Failed to terminate blockchain submissions: {e}"))?;
        Ok(())
    }

    async fn generate_order_status_report(
        &self,
        _cmd: &GenerateOrderStatusReport,
    ) -> anyhow::Result<Option<OrderStatusReport>> {
        anyhow::bail!("{VENUE_EXECUTION_REPORTS_UNSUPPORTED}");
    }

    async fn generate_order_status_reports(
        &self,
        _cmd: &GenerateOrderStatusReports,
    ) -> anyhow::Result<Vec<OrderStatusReport>> {
        anyhow::bail!("{VENUE_EXECUTION_REPORTS_UNSUPPORTED}");
    }

    async fn generate_fill_reports(
        &self,
        _cmd: GenerateFillReports,
    ) -> anyhow::Result<Vec<FillReport>> {
        anyhow::bail!("{VENUE_EXECUTION_REPORTS_UNSUPPORTED}");
    }

    async fn generate_position_status_reports(
        &self,

View on GitHub (pinned to 18893faf8b)

Solutions

  1. Avoid workflows that query individual order status reports for this venue; rely on local order state and on-chain events
  2. Use generate_mass_status/reconciliation paths that are supported, or disable execution report reconciliation
  3. Use a different adapter/venue if per-order status reports are required

Example fix

null
Defensive patterns

Strategy: fallback

Validate before calling

if adapter_is_blockchain_venue {
    skip_order_status_report_query(order_id);
    return;
}

Try / catch

match client.generate_order_status_report(&cmd).await {
    Ok(r) => use(r),
    Err(e) if e.to_string().contains("UNSUPPORTED") => fall_back_to_local_order_state(),
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: The execution engine or reconciliation flow issues a GenerateOrderStatusReport command against this adapter (e.g. querying a specific open order's status).

Common situations: Running reconciliation or order management features that assume HTTP-style venue report support; misconfiguring the adapter in a setup expecting execution reports.

Understand the failure class

Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.

Related errors


AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08). Data as JSON: /api/errors/14edb2a3343c2816. Report an issue: GitHub.