Agent documentation index: llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Skip to main content

Troubleshooting

This page covers common issues developers encounter when working with the Flare Data Connector (FDC) and how to resolve them.

DA Layer Returns 400 Bad Request​

One of the most common issues developers face is receiving a 400 Bad Request error from the Data Availability (DA) Layer when trying to retrieve a proof.

Symptoms​

  • Your attestation request is prepared successfully by the verifier (status: VALID).
  • The request is submitted to the FDC Hub and a transaction hash is returned.
  • The voting round finalizes without errors.
  • When you query the DA Layer for the proof, you receive a 400 Bad Request error.

Root Cause: Attestation Consensus Failure​

This error occurs when the attestation providers could not reach consensus on your request. For an attestation to be included in a voting round, a majority of providers must independently verify the same data and agree on the response.

Debugging Checklist​

  1. Check the voting round on the Systems Explorer: Visit https://coston2-systems-explorer.flare.network/voting-round/{roundId}?tab=fdc to see if any attestations were included. If your round shows "0 attestation requests," your request wasn't included.

  2. Verify the verifier accepts your request: Prepare the request again with the verifier for your attestation type. A VALID status means the request format is correct, but doesn't guarantee consensus.

Proof Verification Fails Onchain​

If your proof retrieves successfully but fails verification in your smart contract:

Merkle Proof Mismatch​

Ensure you're passing the proof to the correct verification function for your attestation type.

// For EVMTransaction
bool valid = fdcVerification.verifyEVMTransaction(proof);

Response Data Mismatch​

The response data you submit must exactly match what was attested. Don't modify or re-encode the data after retrieving it from the DA Layer.

Wrong Voting Round​

Ensure you're querying the correct voting round ID. The round ID is calculated from the block timestamp when you submitted the request.

Best Practices​

  1. Test on testnet first. The testnet FDC behaves identically to mainnet but allows for faster iteration.

  2. Monitor your attestation requests. Use the Systems Explorer to track whether your requests are being included in voting rounds.

  3. Cache proofs appropriately. Once a proof is generated, it remains valid indefinitely. Cache successful proofs to avoid redundant queries.