Common error categories
1. Timeout errors
Error:execution timeout
Cause: The tracer execution exceeded the configured timeout.
Solutions:
- Start with shorter timeouts (30s) for testing
- Increase the timeout gradually, based on transaction complexity
- Use built-in tracers when possible, because they are faster
- Optimize JavaScript tracer code for performance
2. Memory limit errors
Error:out of memory or memory limit exceeded
Cause: The tracer collected too much data or used memory inefficiently.
Solutions:
3. JavaScript tracer errors
Error:SyntaxError or ReferenceError in a JavaScript tracer
Common issues:
4. Network and connection issues
Tracer not allowed / JavaScript tracers disabled
Error:debug tracer "..." is not allowed; JavaScript tracers are disabled and only native tracers listed in evm.trace_allowed_tracers may be used
Cause: Sei gates which tracers callers may request through TraceConfig.Tracer on the debug_traceCall, debug_traceTransaction, debug_traceBlockByNumber, debug_traceBlockByHash, and debug_traceTransactionProfile endpoints. By default only the native tracers listed in the [evm] trace_allowed_tracers config are accepted, and request-supplied JavaScript tracer source is rejected. This deviates from upstream geth, which accepts JavaScript tracers by default.
Solutions:
-
Use one of the allowlisted native tracers. The shipped default allowlist is:
-
If you are an operator and need to permit a native tracer that is not listed, add its name to
trace_allowed_tracers. Only native geth tracer names are accepted here; a typo or JavaScript source causes the node to fail at startup. Setting the list to[]disables all named tracers. -
To allow request-supplied JavaScript tracer source, an operator must explicitly opt in:
This executes untrusted code in-process and should be kept disabled on public/default RPC nodes. Enabling it does not widen
trace_allowed_tracers: native tracer names must still be listed there to be usable.
When using
muxTracer, the nested tracer names in TracerConfig are validated recursively against the same allowlist, with a bounded nesting depth of 16. A nested name that is not allowlisted produces a nested debug tracer "..." is not allowed error. Also note that trace_bake_tracers names are validated as native-only at startup, so a non-native or mistyped name there will fail node startup rather than being evaluated as JavaScript.connection refused or network timeout
Solutions:
5. Transaction not found
Error:transaction not found
Debugging steps:
Performance optimization
Tracer performance tips
- Limit data collection:
- Use efficient data structures:
- Selective tracing:
Node configuration for better performance
Debugging workflows
1. Failed transaction analysis
2. Gas optimization workflow
Error code reference
Common HTTP error codes
Tracer-specific errors
Best practices summary
✅ Do’s
- Start simple: Begin with built-in tracers before you write custom JavaScript.
- Set timeouts: Always configure appropriate timeouts.
- Limit data: Collect only the information that you need.
- Test incrementally: Test tracers on simple transactions first.
- Monitor resources: Watch memory and CPU usage.
- Cache results: Store expensive trace results when possible.
❌ Don’ts
- Do not collect everything: Avoid tracing all operations unnecessarily.
- Do not ignore errors: Always handle tracer errors gracefully.
- Do not use complex logic: Keep tracer step functions simple.
- Do not forget timeouts: Never run tracers without timeout limits.
- Do not trace in production: Avoid heavy tracing on production nodes.
Getting help
If you have an issue that this guide does not cover:- Check node logs: Look for error messages in your Sei node logs.
- Verify the configuration: Make sure that tracing is enabled on your node.
- Test connectivity: Confirm that the RPC endpoints are accessible.
- Simplify tracers: Try built-in tracers first.
- Community support: Ask in the #dev-support channel of the Sei Discord.
When you report an issue, include your tracer code, the transaction hash, and any error messages that you receive. This helps the community help you.