A token account the call needs does not exist.
The token account has no confidential-transfer extension; run configureAccount first.
configureAccount on an account that is already configured.
The account is configured but not approved by the mint's confidential-transfer authority.
The recipient's account does not accept confidential transfers (allowConfidentialCredits off).
The account has taken as many incoming deposits and transfers as it allows before applyPendingBalance. The owner must apply the pending balance first.
More than the available (or public, for a deposit) balance.
Above what one deposit or transfer can carry: 2^48 - 1 base units.
The keys passed are not the keys the account is configured with.
A balance could not be decrypted (wrong keys, or a pending total beyond what can be decrypted).
The signer cannot sign messages, which the confidential keys come from.
The wallet changed the message it was asked to sign, or returned a signature that does not verify.
The zk-sdk WebAssembly could not be loaded (browser).
A transaction failed in simulation or on chain; logs has the program logs.
A transaction was not confirmed before its blockhash expired. Safe to retry.
An argument is invalid (zero amount, missing destination, malformed address).