Skip to main content

Overview

This page documents the limits and error messages you are most likely to meet when working with CoFHE, and what to do about each one.
Always verify you’re using compatible component versions. Many errors can be resolved by ensuring you’re using the latest versions of all CoFHE components.

Quick Error Decoding

Encountering cryptic execution reverted: 0x... errors? Use the @fhenixprotocol/cofhe-errors package to decode them instantly:
See the CoFHE Errors Package documentation for usage, and the Error Reference for the complete list. The package predates the current contracts, so a selector it does not know is not necessarily invalid: check the reference.

Common issues

Missing revert data

If you encounter a Missing revert data error, verify that you’re using the latest cofhe-contracts version.
1

Check your version

Verify the version of cofhe-contracts in your project:
2

Compare with compatibility guide

Check the Compatibility page to ensure you’re using a supported version.
3

Update if necessary

If your version is outdated, update to the latest compatible version:
This section will be expanded over time as new issues arise. If you encounter an issue not documented here, please report it to the Fhenix team.

Possible errors from Solidity

The errors below are the ones a contract can hit during normal development. Each comes with its selector so you can match it against an execution reverted: 0x... message. Admin, upgrade, and signature-parsing errors are listed on the Error Reference page only.

Access control

Input validation

Types and security zones

Decryption

Access Control Permissions

These four errors come from the Access Control Permission (ACP) check in the ACL. They surface when an ACP presented for decryption is rejected.

Where to look first

  • Access control errors almost always mean a missing FHE.allowThis or FHE.allow in an earlier transaction. See access control.
  • Input validation errors usually mean the encrypted input was produced for a different contract, account, or chain. Re-encrypt with the consuming contract set.
  • Type errors mean the two sides of an operation do not match. Cast with FHE.asEuintXX so both operands share a type and zone.
  • Decryption errors mean a result was read before it existed, or the wrong entry point was used.

Troubleshooting tips

When encountering errors:
  1. Check error messages carefully: The error name and description provide clues about what went wrong
  2. Verify input types: Ensure encrypted values match expected types
  3. Check permissions: Verify that FHE.allowThis() or FHE.allowSender() have been called where necessary
  4. Review component versions: Ensure all CoFHE components are up to date
  5. Test in mock environment: Use the mock environment to debug issues without network delays
Many errors can be prevented by following best practices and ensuring proper access control management.

Next steps