-
Notifications
You must be signed in to change notification settings - Fork 592
aztec start --pxe: flag is defined but has no handler ("No module specified to start") #22293
Description
Description
aztec start --pxe is listed in aztec start --help with full config options (pxe.nodeUrl, pxe.proverEnabled, pxe.l2BlockBatchSize, pxe.syncChainTip), but running it produces:
No module specified to start
Root Cause
In aztec_start_action.ts, the if/else chain handles --node, --bot, --archiver, --p2p-bootstrap, --prover-agent, --prover-broker, --txe, and --sequencer, but there is no else if (options.pxe) branch. The flag is defined in aztec_start_options.ts (via allPxeConfigMappings) but falls through to the "No module specified" error.
There is also no start_pxe.ts in cmds/.
Impact
There is currently no way to run a standalone PXE process that:
- Connects to a remote Aztec node (e.g. a third-party RPC provider)
- Syncs blocks continuously in the background
- Persists state (LMDB) across restarts
This makes it impossible to use aztec-wallet for accounts that were deployed in earlier blocks, because the embedded PXE starts fresh (or from stale LMDB state), immediately jumps to simulation before catching up, and fails with:
Assertion failed: Failed to get a note 'self.is_some()'
The PXE never gets a chance to sync far enough to discover notes from earlier blocks (e.g. a Schnorr signing key note from block 352 when the chain is at block 3000+).
Environment
aztecCLI version: 4.1.3 (also reproduced on 4.1.2)- macOS (darwin, arm64)
- Connecting to Aztec Alpha mainnet via dRPC
Expected Behavior
aztec start --pxe --pxe.nodeUrl <url> should start a standalone PXE service that:
- Connects to the specified remote node
- Syncs blocks continuously
- Exposes a JSON-RPC API (or at minimum, allows
aztec-walletto connect to it) - Persists LMDB state across restarts
Workaround
None currently. The EmbeddedWallet from @aztec/wallets/embedded can create an in-process PXE programmatically, but aztec-wallet always creates its own PXE per invocation and there's no CLI path to a persistent one.