Skip to main content
This guide helps DVN operators diagnose and resolve common issues with DVN contracts, Gasolina services, and infrastructure deployments.

Contract Error Reference

DVN Contract Errors

These errors are emitted by the DVN smart contract when operations fail.

DVNFeeLib Errors

These errors relate to fee calculation and configuration.

Worker Errors (Inherited)


DVN Contract Events

Monitor these events to track DVN operations:

Gasolina Service Issues

Health Check Failures

Symptom: GET / doesn’t return “HEALTHY” Possible Causes:
  1. Service not running
  2. Container crash loop
  3. Port misconfiguration
    • Verify the container is listening on the correct port (default: 8999 for GCP)
    • Check load balancer health check configuration

RPC Connection Failures

Symptom: Signature requests fail with RPC-related errors Diagnostic Steps:
  1. Verify RPC endpoints are accessible:
  2. Check provider configuration:
    • Verify providers.json contains valid endpoints
    • Ensure API keys are correct and not rate-limited
    • Confirm chain IDs match expected values
  3. Add backup providers:
Solutions:
  • Add multiple RPC providers per chain for redundancy
  • Monitor RPC usage to avoid rate limits
  • Use dedicated RPC endpoints for production

Signature Generation Failures

Symptom: API returns 500 error when requesting signatures Possible Causes:
  1. KMS key access issues (AWS/GCP)
  2. Mnemonic secret not found
  3. Event not found on chain
    • Verify transaction hash is correct
    • Ensure RPC provider is synced
    • Check if transaction has been mined
Solutions:
  • Verify IAM/service account permissions for KMS
  • Check secret manager configuration
  • Wait for transaction confirmation before requesting signatures

Infrastructure Issues

AWS Deployment Failures

”Resource already exists” Error

Cause: Previous deployment artifacts weren’t cleaned up Solution:

CDK Bootstrap Required

Symptom: Deployment fails with “This stack uses assets, so the toolkit stack must be deployed” Solution:

GCP Deployment Failures

”API has not been used in project” Error

Cause: GCP APIs need time to propagate after enabling Solution:
  1. Wait 2-5 minutes after enabling APIs
  2. Retry the Terraform apply:

KeyRing Creation Error

Cause: Cloud KMS API not fully enabled Solution:
  1. Visit the Cloud KMS API page in GCP Console
  2. Ensure the API is enabled
  3. Wait a few minutes and retry

Accessing Logs

AWS CloudWatch

GCP Cloud Logging


Verification Failures

Block Confirmation Issues

Symptom: Signatures not generated; waiting for confirmations Diagnostic:
Solutions:
  • Wait for required confirmations to pass
  • Verify RPC provider is synced to chain head
  • Check if chain is experiencing delays

Signer Mismatch

Symptom: DVN_InvalidSignatures error when submitting to contract Diagnostic:
  1. Query signers from Gasolina:
  2. Query signers from contract:
Solutions:
  • Ensure Gasolina signers match those registered in the DVN contract
  • If signers changed, update the DVN contract using setSigner
  • Verify you’re using the correct Gasolina instance

Quorum Not Met

Symptom: Verification transaction reverts despite having signatures Diagnostic:
  1. Check required quorum on contract:
  2. Count signatures in your payload
Solutions:
  • Ensure you have at least quorum signatures
  • Verify all signers are valid (not removed)
  • Check signature order (some chains require alphabetical ordering)

Common Scenarios

Scenario: New Chain Support

Issue: DVN doesn’t support a newly added chain Steps:
  1. Add RPC providers for the new chain to providers.json
  2. Update availableChainNames in config
  3. Redeploy Gasolina
  4. Request DVN contract deployment on the new chain from LayerZero
  5. Update setDstConfig for fee configuration

Scenario: Key Rotation

Issue: Need to rotate signing keys Steps:
  1. Generate new keys (KMS or mnemonic)
  2. Add new signer to DVN contract:
  3. Update Gasolina configuration with new key
  4. Redeploy Gasolina
  5. Optionally remove old signer:

Scenario: Taking Over Admin Role

Issue: Need to take direct control from Essence Steps:
  1. Prepare a wallet to receive admin role
  2. Generate quorumChangeAdmin signatures:
  3. Sign with Gasolina signers
  4. Call quorumChangeAdmin directly on DVN contract
  5. Now you control transaction submission
After taking admin control, you’re responsible for:
  • Managing gas across all chains
  • Submitting verification transactions
  • Monitoring and operational tasks

Debugging Commands Reference

Contract Queries

Gasolina API Tests

Log Analysis


Getting Help

If you’ve exhausted these troubleshooting steps:
  1. Check Documentation:
  2. GitHub Issues:
  3. Community Support:
When reporting issues, include:
  • Error messages and logs
  • Configuration (redact secrets)
  • Chain and environment
  • Steps to reproduce