Port Conflicts (EADDRINUSE)
Symptom
Solution
1
Identify Processes
Find processes using the default ports:
2
Kill Existing Processes
Terminate all processes using Agentic Wallet ports:
3
Restart Services
Re-export environment variables and start the stack:
Alternative: Use Different Ports
Configure custom ports in.env:
.env
Escrow Configuration Issues
Health Check Says “Not Configured”
Symptom
Solution
1
Set Program ID
Add the escrow program ID to
.env:.env
2
Export Environment
Ensure environment variables are loaded:
3
Restart Services
Restart the protocol-adapters service:
4
Verify Configuration
Check that the environment variable is set:
Health Check Says “Not Deployed”
Symptom
Solution
Deploy the escrow program to devnet:- Syncs the program ID in source files
- Builds the Anchor program
- Deploys to devnet
- Updates
.envwith the deployed program ID
Ensure you have sufficient SOL in your deployment wallet (set via
PRIVATE_KEY in .env).Approval Gate Transactions Not Progressing
Symptom
Transaction is stuck inapproval_gate stage:
Solution
Transactions requiring approval must be explicitly approved or rejected:List Pending Approvals
Find all transactions waiting for approval:Why Transactions Require Approval
Why Transactions Require Approval
The policy engine can return three decisions:
- allow - Transaction proceeds automatically
- deny - Transaction is rejected immediately
- require_approval - Transaction pauses at approval gate
require_approval when:- Transaction exceeds spending limits but is within an “operator review” threshold
- Agent is in supervised mode
- Protocol or token is on a watchlist
- Custom policy rules require human review
Transfer Fails with Rent Error
Symptom
Solution
Solana accounts must maintain a minimum balance for rent exemption. If the recipient account is unfunded:1
Fund Recipient First
Ensure the recipient wallet has enough SOL to be rent-exempt:
2
Increase Transfer Amount
Transfer enough to keep both sender and recipient above rent-exempt minimum (~0.00089 SOL).
The rent-exempt minimum for a system account is approximately 890,880 lamports (0.00089088 SOL).
DEX or DeFi Protocol Failures
Symptom
Solution
Protocol adapters are fail-closed for safety. Upstream API outages return errors instead of synthetic success.1
Check Protocol Health
Verify the protocol adapter status:
2
Retry Later
If the upstream service is unavailable, retry the operation after the service recovers.
3
Use Alternative Protocol
If one DEX is down, try an alternative:
- Jupiter → Orca or Raydium for swaps
- Check protocol capabilities:
GET /api/v1/protocols
Why Fail-Closed?
Why Fail-Closed?
Fail-closed design prevents:
- Silent failures masquerading as success
- Agents proceeding with stale or invalid quotes
- Execution at unfavorable rates due to simulation drift
Environment Variables Not Loaded
Symptom
Services start but behave as if configuration is missing:- Escrow reports “not configured” even though
ESCROW_PROGRAM_IDis in.env - Gateway rejects valid API keys
- RPC pool uses only the default endpoint
Solution
Export environment variables to the shell before starting services:Verify Environment
Check that variables are actually set:Transaction Stuck in “Submitting” Stage
Symptom
submitting for an extended period.
Diagnosis
1
Check Outbox Queue
Verify the transaction is in the outbox:Look for
processing or pending jobs.2
Check RPC Pool Status
Verify RPC endpoints are healthy:Look for:
- Low health scores (< 0.5)
- High failure counts
- All endpoints with recent errors
3
Check Network Congestion
Devnet or mainnet may be experiencing congestion. Check:
- Solana status page
- Block explorer for recent block times
Solutions
The outbox queue will automatically retry failed submissions up to
TX_OUTBOX_MAX_ATTEMPTS times (default: 6).Database Lock Errors
Symptom
Solution
1
Stop All Services
Ensure no services are accessing the database:
2
Check for Stale Locks
Look for Remove stale WAL files if no processes are running:
-wal and -shm files:3
Restart Services
Debugging Transaction Failures
Get Transaction Details
stage- Where the transaction failedstatus- Current status (failed,pending, etc.)error- Error messagefailedAt- Deterministic failure stagehistory- Stage transition log
Get Execution Proof
- Intent payload
- Policy decision
- Simulation result
Get Replay Data
- Original request
- Policy evaluation
- Simulation output
- Proof artifacts
- Stage history
Query Audit Events
- Transaction created
- Policy evaluated
- Simulation completed
- Signature generated
- Submission attempts
- Confirmation or failure
Common Failure Stages
Common Failure Stages
- validation - Request schema or parameter validation failed
- policy - Policy engine denied the transaction
- build - Protocol adapter failed to build transaction
- sign - Wallet engine could not sign (missing key, incorrect signer backend)
- send - RPC submission failed
- confirm - Transaction did not confirm within timeout
Getting Help
If you encounter an issue not covered here:1
Check Logs
Review service logs for error messages and stack traces.
2
Run Doctor
3
Review Documentation
4
Report Issues
Open an issue on GitHub with:
- Error messages and logs
doctorcommand output- Transaction ID (if applicable)
- Steps to reproduce