API Validation Errors
Request validation failed: failed to get policy ID for address
Request validation failed: failed to get policy ID for address
Cause: The provided address doesn’t have an associated policy on the specified chain.Solutions:
- Verify you have registered your contract address in the Predicate dashboard
- Confirm you called
setRegistry()andsetPolicyID()on your contract - Ensure the contract’s Policy ID matches your dashboard configuration
- Ensure you’re using a supported chain name
Missing required fields
Missing required fields
Cause: Request is missing required transaction fields.Solution: Include all required fields in your request:
data and msg_value are optional — only needed when using PredicateClient for function-level policy validation.Example Error: Missing required field: fromUnsupported chain ID
Unsupported chain ID
Cause: The specified chain ID is not supported by your configuration.Solutions:
- Use a supported chain ID (check your dashboard for available chains)
- Contact support to add chain support
- Verify chain configuration in your environment
unsupported chain ID 999HTTP Status Errors
401 Unauthorized - Missing or invalid token
401 Unauthorized - Missing or invalid token
408 Request Timeout
408 Request Timeout
Cause: Transaction validation took longer than 25 seconds.Solutions:
- Retry the request with exponential backoff
- Contact support if timeouts persist
429 Rate Limited
429 Rate Limited
Cause: Too many requests in a short time period.Solutions:
- Implement exponential backoff in your retry logic
- Review your rate limits in the dashboard
- Consider upgrading your plan for higher limits (contact support)
Integration Errors
Attestation verification failed
Attestation verification failed
Cause: Attestation signature or format is incorrect for smart contract verification.Solutions:
- Validate signature encoding is correct (most likely culprit)
- Ensure you’re using the latest
PredicateClient.sol - Verify the request to Predicate API matches the encoding on the application Contract
Invalid Signature
Invalid Signature
Cause: The
data and/or msg_value sent to the Predicate API don’t match what the contract encodes onchain. The attestation is signed over these values, so any mismatch causes the onchain signature check to fail.This is the most common integration error when using PredicateClient. It does not apply to BasicPredicateClient, which omits data and msg_value entirely.Solutions:- Switch to
BasicPredicateClientif your policy only validates who can transact (AML/KYC, allowlist/denylist, geo-restrictions). This eliminates calldata encoding entirely — the API request only needsfrom,to, andchain. - If you need
PredicateClient, ensure thedatafield sent to the API is the exact output ofabi.encodeWithSignaturefor the internal function your contract calls (e.g.,_deposit(uint256), not the external function). - Ensure
msg_valuematches the value the transaction will send onchain. Use"0x0"or"0"if no ETH is sent.
