nautechsystems/nautilus_trader · error · ImportError
plotly is required for visualization. Install it with: pip…
Error message
plotly is required for visualization. Install it with: pip install nautilus_trader[visualization]
What it means
Thrown when the proxy entry's `target_address` fails `Address::from_str`, i.e. it is not a valid 20-byte hex Ethereum address. This is the implementation contract address the proxy is expected to point at.
Solutions
- Correct `target_address` to the proxy's actual implementation address (0x + 40 hex chars).
- Read the live implementation via eth_getStorageAt on the proxy slot and use that address.
- Ensure you are not accidentally putting the proxy's own address in target_address.
Example fix
// before (manifest.json) "target_address": "implementation_contract" // after (manifest.json) "target_address": "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
Defensive patterns
Strategy: validation
Validate before calling
fn valid_eth_address(s: &str) -> bool { use alloy_primitives::Address; s.len() == 42 && Address::from_str(s).is_ok() } // apply to proxy.target_address Type guard
fn parse_target(s: &str) -> Option<Address> { use alloy_primitives::Address; Address::from_str(s).ok() } Try / catch
let target = Address::from_str(&proxy.target_address).map_err(|_| anyhow!("invalid proxy target_address"))?; Prevention
- Resolve the implementation address on-chain before writing it into the manifest
- Do not confuse the proxy address with the target (implementation) address
- Reject ENS names and non-hex strings at manifest-authoring time
When it happens
Trigger: Manifest validation (verification.rs:1296) parses a proxy whose `target_address` is malformed — wrong length, non-hex characters, empty string, or a non-address value pasted into the field.
Common situations: Truncated or mistyped implementation address; pasting an ENS name or checksummed-with-typo address; leaving the field as a placeholder when the proxy entry was added manually; confusing target_address with the proxy's own address.
Understand the failure class
Background: "Invalid ... format", "must be in format X", "does not look like a ..." — invalid argument format errors across CLI tools and libraries — this error's family across 17 libraries.
Related errors
- A BacktestNode is required for the bars_with_fills chart
- Chart function must be callable, was
- Chart ' ' not found. Available charts: . Register custom…
- Chart function must be callable, was
- Manifest probe call data is invalid
AI-assisted analysis of nautechsystems/nautilus_trader@18893faf8b (2026-09-08).
Data as JSON: /api/errors/03b9a29223f3c63a.
Report an issue: GitHub.
Appendix: source
Thrown at python/nautilus_trader/analysis/tearsheet.py:424
The run configuration ID. Defaults to ``engine.run_config_id``.
Returns
-------
str or None
HTML string if output_path is None, otherwise None.
Raises
------
ImportError
If plotly is not installed.
ValueError
If ``bars_with_fills`` is configured without a node, a supplied node has no
run configuration ID, or the matching run configuration sets
``dispose_on_completion=True``.
"""
if not PLOTLY_AVAILABLE:
raise ImportError(
"plotly is required for visualization. "
"Install it with: pip install nautilus_trader[visualization]",
)
_require_not_none(engine, "engine")
if not hasattr(engine, "get_result"):
return _create_tearsheet_from_result(
result=engine,
node=node,
run_config_id=run_config_id,
currency=currency,
output_path=output_path,
title=title,
config=config,
benchmark_returns=benchmark_returns,
benchmark_name=benchmark_name,
)View on GitHub (pinned to 18893faf8b)