Skip to main content
This guide covers common issues you might encounter when working with Jolt zkVM and their solutions.

Build Issues

Guest Build Failures After Pulling Changes

Symptom: Guest builds fail after pulling the latest changes from the repository. Solution: Reinstall the Jolt CLI:
After pulling changes that affect the Jolt CLI, you must reinstall it to ensure guest builds use the latest version.

Missing Toolchain

Symptom: Build errors related to Rust toolchain or target not found. Solution: Ensure you’re using the correct Rust nightly version:
If rustup is installed, it should automatically install the correct toolchain specified in rust-toolchain.toml.

Symbol Stripping Issues

Symptom: Backtraces show no function names or source locations. Solution: Enable symbol preservation:
Symbols are stripped by default in release builds. Always use one of the above methods when you need readable backtraces.

Runtime Issues

Guest Panics Without Stack Trace

Symptom: Guest program panics but shows no useful debugging information. Solution: Enable JOLT_BACKTRACE to get detailed panic information:

Out of Memory Errors

Symptom: Program crashes with out-of-memory errors during proving. Solutions:
  1. Increase heap size in your #[jolt::provable] attribute:
  1. Profile memory usage to identify bottlenecks:
  1. Optimize your guest code to use less memory.

Trace Length Exceeded

Symptom: Error about maximum trace length being exceeded. Solution: Increase max_trace_length in your #[jolt::provable] attribute:
Start with conservative values and increase as needed. Larger values consume more memory during proving.

Performance Issues

Slow Proving Times

Symptom: Proof generation takes longer than expected. Solutions:
  1. Always use release builds for proving:
Debug builds can be orders of magnitude slower. Never benchmark or measure performance with debug builds.
  1. Profile your program to identify bottlenecks:
  1. Optimize guest code:
    • Reduce unnecessary computations
    • Minimize memory allocations
    • Use efficient algorithms

High Memory Usage During Proving

Symptom: Prover consumes excessive memory. Solution: Use memory profiling to identify heavy allocations:
Analyze the generated flamegraph SVG files to identify memory-intensive stages.

Testing Issues

Tests Failing After Code Changes

Symptom: Tests that previously passed now fail. Solutions:
  1. Run tests with the correct command:
  1. Run specific tests:
  1. Test in both standard and ZK modes:
Always use cargo nextest instead of cargo test when working with Jolt. The project is configured for nextest.

Verification Issues

Proof Verification Failures

Symptom: Generated proofs fail verification. Solutions:
  1. Check for transcript mismatches — ensure prover and verifier use the same inputs:
  1. Verify you’re using matching preprocessing:
  1. Check for code changes that might affect proof generation.

Development Workflow Issues

Slow Iteration During Development

Symptom: Testing changes takes too long due to full proof generation. Solution: Use trace_analyze instead of the full prover:
During development, use trace_analyze to test guest logic without proof generation overhead. Switch to full proving once the logic is correct.

jolt-emu Not Found

Symptom: jolt run command fails with “jolt-emu not found” error. Solutions:
  1. Build jolt-emu:
  1. Specify path explicitly:
  1. Ensure jolt-emu is in PATH:

Getting Help

If you encounter issues not covered in this guide:
  1. Check the Jolt Book for detailed documentation
  2. Search existing GitHub issues
  3. Open a new issue with a minimal reproducible example
  4. Include relevant error messages, logs, and your environment details

Alpha Software Warning

Jolt is in alpha and is not suitable for production use at this time. Expect breaking changes and evolving APIs.

Environment Information

When reporting issues, include:
  • Operating system and version
  • Rust toolchain version (rustup show)
  • Jolt version (jolt --version)
  • Relevant error messages and logs
  • Steps to reproduce the issue