AirnodeHub (API3) attestation verify failed or resolve returned nothing? Handling attested data
AirnodeHub (API3) delivers attested data — responses signed so you can verify they came from the right source. Two failures show up: the attestation doesn't verify, or a resolve comes back empty. Each needs a specific response.
Attestation verification failed
The point of attested data is that the signature recovers to a known signer — that's how you trust it. When verification fails, the recovered address doesn't match the expected signer, so you must not trust the data. The usual causes:
- Wrong expected signer. You're recovering against the wrong public key / signer address — check you have the correct one.
- Signed-vs-hashed mismatch. What you hashed to verify isn't exactly what was signed — a serialization or encoding difference. Hash precisely what was signed.
- Tampered or mismatched response. If the data was altered in transit, the signature legitimately won't recover — reject it.
Attestation failure is a trust signal, not a retry: don't retry the same unverifiable response hoping it verifies. Fix what you're verifying against (the signer, the hash), or reject the data as untrusted.
Resolve returned nothing
A resolve that returns empty usually means no match for the intent/listing — not an error. Retrying the identical query returns empty again. Handle it as a no-result (broaden the query, or surface "nothing found"). A rate-limited resolve is a different case — back off and retry that one.
For agents using API3 / AirnodeHub
diagnose_infra_error returns the airnode family and distinguishes an attestation trust failure (fix the signer/hash) from an empty resolve (no match, don't retry identically) from a rate limit (back off).
Machine-readable guide: https://snapback.sh/llms.txt · Tool discovery: https://snapback.sh/.well-known/mcp.json · MCP endpoint: https://api.snapback.sh/mcp. Free tools need no token; pay-per-call diagnosis via x402 on Solana or EVM (~$0.0032 USDC).