Error Handling
Best practices for handling errors in FHEVM applications.
Common Errors
FHEVM Not Ready
const { isReady, error } = useFHEVM()
if (error) {
return <div>FHEVM Error: {error}</div>
}
Wallet Not Connected
const { canEncrypt } = useEncrypt()
if (!canEncrypt) {
return <div>Please connect your wallet</div>
}
Permission Denied
try {
await decrypt({ ciphertextHandle, contractAddress })
} catch (error) {
if (error.message.includes('permission')) {
alert('You do not have permission to decrypt this value')
}
}
User Rejected Signature
try {
await decrypt({ ... })
} catch (error) {
if (error.message.includes('rejected')) {
console.log('User cancelled the request')
}
}
Best Practices
- ✅ Always check
isReadybefore using FHEVM - ✅ Provide clear error messages to users
- ✅ Handle permission errors gracefully
- ✅ Allow users to retry after errors
- ✅ Log errors for debugging