Skip to content

eth-rpc adapter failing with "Pallet with name Revive not found" on Paseo Asset Hub #214

@nhussein11

Description

@nhussein11

Description

The eth-rpc adapter fails to initialize when connecting to a fully synced Paseo Asset Hub node, throwing a "Pallet with name Revive not found" error despite the pallet being present in the chain's metadata.

Environment

Steps to Reproduce

1. Start Paseo Asset Hub Node

docker run -it --rm \
  -p 9944:9944 \
  -p 9615:9615 \
  -p 30334:30334 \
  -p 30333:30333 \
  -v /data/substrate/asset-hub-paseo:/data \
  -v $(pwd)/paseo-asset-hub.json:/paseo-asset-hub.json \
  parity/polkadot-parachain:latest \
  --name=asset-hub-paseo \
  --base-path=/data \
  --chain=/paseo-asset-hub.json \
  --prometheus-external \
  --prometheus-port 9615 \
  --unsafe-rpc-external \
  --rpc-port=9944 \
  --rpc-cors=all \
  --state-pruning=archive \
  --blocks-pruning=archive \
  -- \
  --chain=paseo \
  --state-pruning=archive \
  --blocks-pruning=archive

2. Verify Node is Synced

curl -H "Content-Type: application/json" \
  -d '{"id":1, "jsonrpc":"2.0", "method": "system_syncState", "params":[]}' \
  http://localhost:9944

Response:

{
  "jsonrpc":"2.0",
  "id":1,
  "result":{
    "startingBlock":2658003,
    "currentBlock":3442783,
    "highestBlock":3442783
  }
}

3. Start eth-rpc Adapter

docker run -it --rm \
  --network=host \
  paritypr/eth-rpc:master-41bc46f2 \
  --node-rpc-url ws://127.0.0.1:9944 \
  --rpc-port 8545 \
  --unsafe-rpc-external \
  --rpc-cors all

Error Output

2025-11-04 19:48:27 🌐 Connecting to node at: ws://127.0.0.1:9944 ...    
2025-11-04 19:48:27 🌟 Connected to node at: ws://127.0.0.1:9944    
Error: Metadata error: Pallet with name Revive not found

Caused by:
    Pallet with name Revive not found

Stack backtrace:
   0: anyhow::error::<impl core::convert::From<E> for anyhow::Error>::from
   1: pallet_revive_eth_rpc::cli::build_client::{{closure}}
   2: sc_cli::signals::Signals::try_until_signal::{{closure}}::{{closure}}::{{closure}}
   3: pallet_revive_eth_rpc::cli::build_client
   4: pallet_revive_eth_rpc::cli::run
   5: eth_rpc::main
   6: std::sys::backtrace::__rust_begin_short_backtrace
   7: main
   8: <unknown>
   9: __libc_start_main
  10: _start

2025-11-04 19:48:27 💾 Using in-memory database, keeping only 256 blocks in memory

Verification: Revive Pallet IS Present

The metadata fetch works correctly and shows the Revive pallet is present:

curl -H "Content-Type: application/json" \
  -d '{"id":1, "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' \
  http://localhost:9944

After decoding the SCALE-encoded metadata output (using [this script](https://github.com/nhussein11/test-metadata-paseo-ah/blob/main/decode.js)), the Revive pallet is visible in the runtime:

Decoded metadata: https://github.com/nhussein11/test-metadata-paseo-ah/blob/main/metadata-summary.json#L474

Note: might be related to paritytech/polkadot-sdk#9528 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions