Common issues
Simulator binary not found
Error: erst-sim not found
Error: erst-sim not found
Invalid JSON from simulator
Error: Invalid JSON response
Error: Invalid JSON response
Symptom: Malformed JSON response from the Rust simulator.Causes:
- Malformed simulation request
- XDR encoding issues
- Simulator crash or panic
-
Check XDR encoding:
-
Enable debug mode:
- Check simulator logs: Look for panic messages or stack traces in stderr.
-
Validate request format:
Ensure the request matches the expected schema:
Ledger entry decode error
Error: Failed to decode ledger entry
Error: Failed to decode ledger entry
Symptom: Error decoding ledger state snapshot.Causes:
- Incorrect ledger state snapshot
- Wrong ledger sequence number
- Corrupted ledger data
-
Verify transaction block number:
-
Check ledger sequence:
Ensure you’re fetching state from the correct ledger:
-
Validate XDR format:
Test XDR decoding separately:
Horizon API timeout
Error: Horizon request timeout
Error: Horizon request timeout
Symptom: Network timeout when fetching transaction data.Causes:
- Network latency or connectivity issues
- Horizon endpoint down or slow
- Rate limiting
-
Check Horizon status:
-
Try different network:
-
Check network connectivity:
-
Verify rate limits:
Check response headers for rate limit information:
- Use custom timeout: Increase request timeout if needed (future feature).
Debugging workflow issues
Transaction not found
Error: Transaction not found on network
Error: Transaction not found on network
Symptom: Transaction hash not found in Horizon API.Causes:
- Invalid transaction hash
- Transaction on different network
- Very recent transaction not yet indexed
- Verify transaction hash: Check the hash is 64 hexadecimal characters.
-
Check correct network:
- Wait for indexing: For very recent transactions, wait 10-30 seconds and retry.
-
Query directly:
Simulation produces different result
Issue: Simulation result differs from on-chain result
Issue: Simulation result differs from on-chain result
Symptom: Local simulation produces different output than the actual on-chain transaction.Causes:
- State snapshot timing mismatch
- Protocol version difference
- Ledger state inconsistency
- Verify exact ledger state: Ensure ledger entries are from the same sequence as the transaction.
-
Check protocol version:
-
Compare transaction metadata:
-
Enable verbose logging:
Interactive trace issues
Error: Interactive mode crashes or displays incorrectly
Error: Interactive mode crashes or displays incorrectly
Symptom: Terminal UI crashes, displays incorrectly, or keyboard shortcuts don’t work.Causes:
- Terminal compatibility issues
- Insufficient terminal size
- Color support problems
-
Check terminal size:
-
Test terminal compatibility:
-
Disable colors if needed:
-
Use non-interactive mode:
Performance issues
Slow simulation execution
Issue: Simulation takes too long
Issue: Simulation takes too long
Symptom: Simulation execution time is unacceptably slow.Causes:
- Large contract state
- Complex transaction with many operations
- Network latency fetching data
- Inefficient contract code
-
Profile the execution:
-
Check state fetch time:
Enable timing metrics:
-
Optimize network requests:
- Use closer Horizon endpoint
- Cache ledger entries locally
- Use JSON-RPC for batch queries
-
Analyze flamegraph:
Generate and review interactive flamegraph:
High memory usage
Issue: Excessive memory consumption
Issue: Excessive memory consumption
Symptom: Erst process uses too much memory.Causes:
- Large ledger state
- Memory leak in simulator
- Many concurrent operations
-
Check memory usage:
- Limit concurrent operations: Reduce parallelism if using daemon mode.
-
Check for leaks:
-
Report memory leaks:
If persistent, report with memory profile:
HSM and signing issues
PKCS#11 module not found
Error: Failed to load PKCS#11 module
Error: Failed to load PKCS#11 module
Symptom: Cannot load HSM PKCS#11 library.Solution:
HSM not detected
Error: No slots found
Error: No slots found
Symptom: HSM device not detected.Solution:
PIN incorrect
Error: Failed to login: 0x1000
Error: Failed to login: 0x1000
Symptom: HSM PIN authentication failed.Solution:
Key not found in HSM
Error: Private key not found in HSM
Error: Private key not found in HSM
Symptom: Specified key not found on HSM.Solution:
Metrics and observability issues
Metrics not appearing
Issue: Prometheus metrics not exposed
Issue: Prometheus metrics not exposed
Symptom:
/metrics endpoint returns empty or no metrics.Solution:-
Verify daemon is running:
-
Check metrics endpoint:
-
Trigger some activity:
Metrics appear only after first use:
-
Check Prometheus scrape config:
Verify target is configured correctly in
prometheus.yml.
Traces not appearing in Jaeger
Issue: OpenTelemetry traces not visible
Issue: OpenTelemetry traces not visible
Symptom: No traces appearing in Jaeger UI.Solution:
-
Verify tracing is enabled:
-
Check OTLP endpoint:
-
Verify Jaeger is running:
-
Test with curl:
Send test trace to verify endpoint:
-
Check for errors:
Enable debug logging:
Validation errors
Schema validation failures
Error: Validation failed for simulation request
Error: Validation failed for simulation request
Symptom: Request validation errors before simulation.Causes:
- Missing required fields
- Invalid Base64 encoding
- Malformed XDR data
-
Check required fields:
-
Validate Base64 encoding:
-
Test XDR decoding:
-
Enable strict validation:
Use validator in strict mode for detailed errors:
Getting help
If you encounter an issue not covered in this guide:
- Check GitHub Issues: Search for similar problems at https://github.com/dotandev/hintents/issues
- Enable debug mode: Run with
--debugflag to get detailed logs - Collect diagnostics: Include version info, error messages, and reproduction steps
- Report the issue: Create a new GitHub issue with full details