Axiom V2 Docs Old
  • Introduction
    • What is Axiom?
    • Quickstart
  • Examples
    • Autonomous Airdrop
      • AxiomREPL Code
      • Contract
      • Web App
      • DataQuery-only Version
  • Developers
    • Axiom for Developers
    • Specifying a Query into Axiom
    • AxiomREPL
      • AxiomREPL Examples
    • Exporting a Client Side Prover
    • Handling Axiom Callbacks
    • Common Issues
      • Callback Debugging
  • SDK and REPL Reference
    • Axiom SDK Reference
      • QueryBuilderV2
      • Data Subqueries
        • Header Subquery
        • Account Subquery
        • Storage Subquery
        • Transaction Subquery
        • Receipt Subquery
        • Solidity Nested Mapping Subquery
    • AxiomREPL Reference
      • Circuit Types
      • Circuit Functions
      • Data Functions
      • Compute Functions
  • Protocol Design
    • Architecture Overview
    • Caching Block Hashes
    • Axiom Query Protocol
      • Axiom Query Format
    • ZK Circuits for Axiom Queries
    • Ethereum On-chain Data
    • Guardrails
  • Transparency and Security
    • KZG Trusted Setup
    • Contract Addresses
    • On-chain ZK Verifiers
    • Security
  • Zero Knowledge Proofs
    • Introduction to ZK
    • ZK Examples
    • Getting Started with halo2
    • halo2-repl
  • Additional Resources
    • Axiom V2 Explorer
    • Github
    • Website
    • Telegram
    • Discord
    • Axiom V1 Docs
Powered by GitBook
On this page
  1. Developers
  2. Common Issues

Callback Debugging

Tips on debugging callback issues.

PreviousCommon IssuesNextAxiom SDK Reference

Last updated 1 year ago

If you encounter an error in your contract after the data is proven and the callback is called, you can use the following tips to help you debug the potential issues.

It's always recommended to simulate the callback by calling your callback function (either via test or on a local fork) with the expected inputs. You may want to either disable the AxiomV2Query check or deploy a version of your contract that sets AxiomV2Query as an address that you control.

If you do run into a callback error, will still show the Query as CallbackFailed.

When you click on the Fulfill TxHash transaction hash, you'll see that there is an error. The error is in one of the Internal Transactions (likely the final one that calls the callback function on your contract).

To figure out the source of the error, you can get more information by clicking the Internal Transactions button at the top and then clicking More > Parity Trace at the top right.

Scroll all the way to the bottom. The Output box will be hidden by a "Show more" link, which you can click to reveal the box. Change the value from Hex to Text to read the revert information.

If you have an error in your callback wherein there is no output data for the revert (and you are using require with a revert string), there may be some EVM error at some point in your code that causes it to revert. Check that things like type conversions are done correctly.

Axiom Explorer
Failed callback in Axiom Explorer
Etherscan showing that the transaction has an Error
The set of internal transactions, with the final call to the callback function on the user's contract reverting
Output box giving revert information