nautechsystems/nautilus_trader · error · anyhow::Error

Token {} does not have exactly one deployment manifest ident

Error message

Token {} does not have exactly one deployment manifest identity

What it means

Manifest consistency guard: a pool token address must appear exactly once in the deployment manifest's token list; zero or multiple identities mean the manifest is ambiguous or incomplete for that token.

Source

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

    let token1 = Address::from_str(&pool.token1)?;
    let factory = Address::from_str(&pool.factory)?;
    let quote_contract = Address::from_str(&pool.quote_contract)?;
    anyhow::ensure!(
        token0 == plan.pool.token0.address
            && token1 == plan.pool.token1.address
            && pool.fee == plan.pool.fee.expect("validated pool fee")
            && factory == plan.factory,
        "Cached pool {} does not match its deployment manifest identity",
        plan.pool_address
    );

    for token in [&plan.pool.token0, &plan.pool.token1] {
        let identities = manifest
            .tokens
            .iter()
            .filter(|identity| Address::from_str(&identity.address).ok() == Some(token.address))
            .collect::<Vec<_>>();
        anyhow::ensure!(
            identities.len() == 1,
            "Token {} does not have exactly one deployment manifest identity",
            token.address
        );
        let identity = identities[0];
        anyhow::ensure!(
            identity.name == token.name
                && identity.symbol == token.symbol
                && identity.decimals == token.decimals,
            "Cached token {} does not match its deployment manifest identity",
            token.address
        );
        let expected_role = if token.address == plan.pool.get_base_token().address {
            "base"
        } else {
            "quote"
        };
        anyhow::ensure!(

View on GitHub (pinned to 18893faf8b)

Solutions

  1. Fix the deployment manifest so each pool token has exactly one identity entry
  2. Regenerate the manifest from a trusted source
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/adapters/blockchain/src/execution/client.rs:4150 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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