Skip to main content

Aztec Troubleshooting Guide

This guide helps you diagnose and resolve common issues with your Aztec node.

Quick Diagnostics

Before diving into specific issues, run this diagnostic script:

quick-diagnostics.sh
#!/bin/bash
echo "=== Aztec Node Diagnostics ==="
echo ""

# Check if service is running
echo "1. Service Status:"
systemctl is-active aztec-node && echo "✅ Service is running" || echo "❌ Service is not running"
echo ""

# Check disk space
echo "2. Disk Space:"
df -h | grep -E "^/dev|Filesystem"
echo ""

# Check memory
echo "3. Memory Usage:"
free -h
echo ""

# Check RPC connectivity
echo "4. RPC Status:"
curl -s localhost:8545 -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' | jq . 2>/dev/null || echo "❌ Cannot connect to RPC"
echo ""

# Check sync status
echo "5. Sync Status:"
curl -s localhost:8545 -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' | jq . 2>/dev/null || echo "❌ Cannot get sync status"
echo ""

# Check recent errors
echo "6. Recent Errors (last 20):"
journalctl -u aztec-node --no-pager | grep -i error | tail -20

Common Issues and Solutions

1. Node Won't Start

Symptoms:

  • Error: listen tcp :8545: bind: address already in use

Solution:

# Find process using the port
sudo lsof -i :8545

# Kill the process (replace PID with actual process ID)
sudo kill -9 PID

# Or change the port in config
sed -i 's/:8545/:8546/g' ~/.aztec/config.toml

2. Sync Issues

Symptoms:

  • Block height not increasing
  • Node appears frozen

Solution:

# 1. Check current block and network block
CURRENT=$(curl -s localhost:8545 -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}' | jq -r .result)
echo "Current block: $CURRENT"

# 2. Check if node is syncing
curl -s localhost:8545 -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' | jq .

# 3. Restart the node
sudo systemctl restart aztec-node

# 4. Check logs for errors
journalctl -u aztec-node -f

3. High Resource Usage

Symptoms:

  • CPU constantly at 100%
  • Node becomes unresponsive

Solution:

# 1. Check what's consuming CPU
top -p $(pgrep aztec-node)

# 2. Reduce proving threads if running prover
sed -i 's/proving-threads = 8/proving-threads = 4/g' ~/.aztec/config.toml

# 3. Disable unnecessary features
# Edit ~/.aztec/config.toml:
# metrics-enabled = false
# rpc-cors-origins = []

# 4. Restart with resource limits
sudo systemctl edit aztec-node
# Add:
# [Service]
# CPUQuota=80%
# MemoryLimit=8G

4. Network Issues

Symptoms:

  • Peer count is 0
  • Cannot sync with network

Solution:

# 1. Check firewall settings
sudo ufw status
sudo ufw allow 30303/tcp

# 2. Add bootstrap peers
# Edit ~/.aztec/config.toml:
# bootstrap-peers = [
# "peer1@ip1:port1",
# "peer2@ip2:port2"
# ]

# 3. Check network connectivity
ping google.com
nslookup aztec.network

# 4. Restart networking
sudo systemctl restart aztec-node

5. Prover Issues

Symptoms:

  • proof generation failed errors
  • Low proof generation rate

Solution:

# 1. Check hardware requirements
lscpu | grep -E "Model name|CPU\(s\):"
free -h

# 2. Increase timeout
sed -i 's/proof-timeout = 300/proof-timeout = 600/g' ~/.aztec/config.toml

# 3. Reduce proving load
sed -i 's/proving-threads = 8/proving-threads = 4/g' ~/.aztec/config.toml

# 4. Check GPU support (if available)
nvidia-smi
# Ensure CUDA drivers are installed

Performance Optimization

System Tuning

# Increase file descriptors
echo "fs.file-max = 65535" | sudo tee -a /etc/sysctl.conf
echo "$USER soft nofile 65535" | sudo tee -a /etc/security/limits.conf
echo "$USER hard nofile 65535" | sudo tee -a /etc/security/limits.conf

# Optimize network settings
echo "net.core.rmem_default = 262144" | sudo tee -a /etc/sysctl.conf
echo "net.core.rmem_max = 16777216" | sudo tee -a /etc/sysctl.conf
echo "net.core.wmem_default = 262144" | sudo tee -a /etc/sysctl.conf
echo "net.core.wmem_max = 16777216" | sudo tee -a /etc/sysctl.conf

# Apply changes
sudo sysctl -p

Database Optimization

# Regular database maintenance
sudo systemctl stop aztec-node
aztec-node db compact
sudo systemctl start aztec-node

# Adjust database cache
sed -i 's/db-cache = 256/db-cache = 512/g' ~/.aztec/config.toml

Emergency Procedures

Complete Reset

# WARNING: This will delete all local data
sudo systemctl stop aztec-node
rm -rf ~/.aztec/data
aztec-node init --network testnet
sudo systemctl start aztec-node

Backup and Restore

# Create backup
sudo systemctl stop aztec-node
tar -czf aztec-backup-$(date +%Y%m%d).tar.gz ~/.aztec
sudo systemctl start aztec-node

# Restore from backup
sudo systemctl stop aztec-node
rm -rf ~/.aztec
tar -xzf aztec-backup-YYYYMMDD.tar.gz -C ~/
sudo systemctl start aztec-node

FAQs & Common Issues/Resolutions

Here is a list of common issues node operators may face. If you don't find your issue here, please check the Aztec Discord server, namely the # operator | faq channel.

"Error getting slot number"

Issue: Error messages related to slot number retrieval.

Resolution:

  • If it is regarding a beacon call, it has failed the beacon RPC call
  • If it is regarding the execution endpoint, then it is likely just reporting and not critical
# Check your beacon chain RPC endpoint
curl -s $L1_CONSENSUS_HOST_URLS/eth/v1/beacon/headers/head

# Verify execution endpoint connectivity
curl -s $ETHEREUM_HOSTS -X POST -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'

Update Aztec Alpha-Testnet Version

Issue: Need to update to the latest Aztec version.

Resolution:

# Update to latest alpha-testnet version
aztec-up alpha-testnet

# Restart your node
docker-compose restart

# Or if using systemd
sudo systemctl restart aztec-node

"rpc rate", "quota limit"

Issue: Rate limiting errors from RPC providers.

Resolution:

  • Register with your RPC URL provider to get a token that may permit more requests
  • Consider using multiple RPC endpoints for load balancing
  • Switch to a higher-tier plan with your RPC provider
# Example: Using authenticated endpoint
export ETHEREUM_HOSTS="https://eth-mainnet.g.alchemy.com/v2/YOUR_API_KEY"

# Or use multiple endpoints
export ETHEREUM_HOSTS="https://rpc1.example.com,https://rpc2.example.com"

"No blob bodies found", "Unable to get blob sidecar, Gateway Time-out (504)"

Issue: Blob sidecar retrieval failures.

Resolution:

  • Check L1_CONSENSUS_HOST_URLS (for the beacon chain)
  • If you see this regularly, it's likely also a rate/limit issue
# Test beacon chain connectivity
curl -s $L1_CONSENSUS_HOST_URLS/eth/v1/beacon/blob_sidecars/latest

# Check if rate limiting is the issue
curl -I $L1_CONSENSUS_HOST_URLS/eth/v1/beacon/headers/head

"Insufficient L1 funds"

Issue: Not enough funds for L1 transactions.

Resolution:

  • EOA needs Sepolia ETH for testnet operations
  • Use a faucet to get testnet funds
# Check your balance
cast balance $YOUR_ADDRESS --rpc-url https://sepolia.infura.io/v3/YOUR_KEY

# Get testnet funds from faucets:
# - https://sepoliafaucet.com/
# - https://faucets.chain.link/sepolia

"CodeError: stream reset"

Issue: Occasional stream reset errors in logs.

Resolution:

  • This error can be seen occasionally in logs
  • Action: Ignore - this is not critical and doesn't require intervention

"SYNC_BLOCK failed"

Issue: Block synchronization failures with world state mismatch.

Error: ERROR: world-state:database Call SYNC_BLOCK failed: Error: Can't synch block: block state does not match world state

Resolution:

# 1. Stop Aztec
docker-compose down
# Or: sudo systemctl stop aztec-node

# 2. Delete current snapshot
rm -rf ~/.aztec/0.87.8/data/archiver

# 3. Update to latest version
aztec-up -v latest

# 4. Start Aztec
docker-compose up -d
# Or: sudo systemctl start aztec-node

Additional Common Issues

"Failed to connect to P2P network"

Resolution:

# Check if P2P ports are open
sudo ufw allow 40400/tcp
sudo ufw allow 40400/udp

# Test P2P connectivity
telnet your-public-ip 40400

"Database corruption detected"

Resolution:

# Stop the node
docker-compose down

# Backup current data (optional)
cp -r ~/.aztec/data ~/.aztec/data.backup

# Remove corrupted database
rm -rf ~/.aztec/data/archiver

# Restart and resync
docker-compose up -d

"Prover agent not connecting to broker"

Resolution:

# Check broker connectivity
docker exec aztec-prover-agent-1 curl -s http://broker:8080/health

# Verify environment variables
docker exec aztec-prover-agent-1 env | grep PROVER

# Check network connectivity between containers
docker network ls
docker network inspect aztec-prover_default

Getting Help

If you're still experiencing issues:

  1. Check the logs: journalctl -u aztec-node -f or docker-compose logs -f
  2. Visit the documentation: Aztec Docs
  3. Join the Discord: Aztec Discord - Check # operator | faq channel
  4. Search GitHub issues: Aztec Issues

When asking for help, always include:

  • Your OS and version
  • Node version: aztec-node --version or Docker image tag
  • Error logs from the last 50 lines: journalctl -u aztec-node -n 50 or docker-compose logs --tail=50
  • Your config file (remove any private keys)
  • Network you're running (mainnet/testnet)