How to use this runbook
1
Find the symptom
Find the symptom below that matches what you are observing.
2
Follow the diagnosis
Follow the diagnosis steps in order.
3
Apply the resolution
Apply the recommended resolution.
4
Verify via audit trail
Check the Audit Trail for root cause analysis.
~/.iscl/audit.sqlite).
Symptoms
All Transactions Being Denied
All Transactions Being Denied
Severity: Medium
Description: Every transaction attempt returns HTTP 403 with policy denial.2. Common denial reasons and fixes:
Diagnosis
1. Check the policy denial reasons:3. Check if the default policy is in effect:
The default policy has
maxValueWei: "0", which denies ALL transactions. This is a safety default — you must configure a policy with appropriate limits.Resolution
Review and update the policy configuration. See Configuration Reference for all PolicyConfig fields.Transactions Failing on Broadcast
Transactions Failing on Broadcast
Severity: Medium
Description: ISCL signs the transaction but broadcast fails (2. Common broadcast errors:If this fails, the RPC endpoint is down or unreachable.
broadcastError is non-null).Diagnosis
1. Check broadcast errors in the audit trail:3. Check RPC health:
Resolution
- For nonce errors: usually self-correcting on retry
- For gas errors: send ETH to the wallet
- For RPC errors: check provider status, switch to backup RPC
- For persistent reverts: check the transaction parameters (insufficient token balance, expired deadline)
RPC Errors / 502 Responses
RPC Errors / 502 Responses
Severity: Medium
Description: API returns HTTP 502 with 2. Test RPC connectivity:3. Check for provider rate limiting:If you see intermittent 502s, your RPC provider may be rate limiting. Look for HTTP 429 responses in ISCL Core logs.
"no_rpc_client" or RPC timeout errors.Diagnosis
1. Verify RPC configuration:Resolution
Approval Requests Timing Out
Approval Requests Timing Out
Severity: Low
Description: Users report “Transaction expired” when trying to approve transactions.If this shows requests with low If set to
Diagnosis
1. Check the approval TTL:The default TTL is 300 seconds (5 minutes). If operators consistently need more time, the TTL may be too short.2. Check for stale pending requests:ttlSeconds, they are about to expire.3. Check approval mode:cli but no one is watching the terminal, approvals will time out.Resolution
Signing Fails "No key found"
Signing Fails "No key found"
Severity: Medium
Description: The approval succeeds but signing fails with a key-not-found error.2. Compare with the wallet address in the intent:The
Diagnosis
1. List available keys:wallet.address in the TxIntent must match an address in the keystore (case-insensitive).3. Check keystore path:Ensure the ISCL Core process can access the keystore directory. In Docker, the keystore is mounted as a volume.Resolution
Sandbox Skill Times Out
Sandbox Skill Times Out
High Memory Usage
High Memory Usage
Severity: Low
Description: ISCL Core process memory exceeds expected levels (>300MB).2. Check for leaked pending approvals:A large number of stale pending approvals suggests the cleanup interval isn’t running or requests are being submitted faster than they expire.3. Check SQLite database size:
Diagnosis
1. Check Node.js heap usage:Resolution
Preflight Simulation Fails
Preflight Simulation Fails
Severity: Low
Description: The preflight service reports simulation failure, blocking the transaction.Look for
Diagnosis
1. Check the preflight result in audit trail:simulationSuccess: false and the associated error message.2. Common simulation failures:Resolution
- Verify the sender has sufficient balance for the transfer/swap
- Check that ERC-20 approvals are in place for swap router interactions
- Ensure the deadline hasn’t passed
- Verify the target contract exists on the specified chain
General investigation procedure
For any incident not covered above:1
Get the intent ID
Find the intent ID from error messages, API responses, or logs.
2
Pull the full audit trail
3
Identify where the pipeline failed
Which event is the last one? What does its
data show?4
Check surrounding events for context
5
Correlate with application logs
Cross-reference with pino structured logs for stack traces and detailed error context.
Next steps
- Audit Trail — Event types and SQL query patterns
- Error Codes — HTTP error shapes and recovery
- Configuration Reference — All configurable parameters
- Observability — Logging and monitoring setup
- Performance Tuning — Resource optimization