#[non_exhaustive]pub enum Error {
Io(Error),
Relay(RelayRefusal),
InvalidArgument(&'static str),
Directory(DirResponse),
Account(AccountResponse),
Provision(ProvisionOutcome),
Crypto(String),
Protocol(&'static str),
SecureStore(String),
StoreUnavailable(String),
StateMismatch {
state: DeviceAddr,
client: DeviceAddr,
},
Discovery(String),
}Expand description
What can go wrong talking to a Tacenta server. Error::kind is the
contract an app branches on; the variants carry the detail, including
the server’s own reply where there was one, and may grow (the enum is
non-exhaustive).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Io(Error)
A network or transport error.
Relay(RelayRefusal)
The relay refused a send, returning this outcome.
InvalidArgument(&'static str)
The caller’s own input was wrong: a device number the protocol cannot carry, a message over the size limit, a call the client’s shape does not support. Fix the call, not the network.
Directory(DirResponse)
The directory refused an operation, returning this outcome.
Account(AccountResponse)
The account service refused an operation (a refused signup or sign-in), returning this outcome.
Provision(ProvisionOutcome)
Provisioning was refused (bad session, failed possession, or the handle is bound to a different key), returning this outcome.
Crypto(String)
A cryptographic operation failed.
Protocol(&'static str)
The server sent an unexpected or malformed response.
SecureStore(String)
The persisted-state authenticator was refused, or the secure-storage key behind it was unavailable (decision 0078, anchor B). A refused authenticator on a restore means the state file was altered — including the deliberate forgery EX-03 is about, which is now caught rather than resumed.
The platform’s secure store could not be reached: a Keychain before first unlock, a Keystore that needs the user. Nothing was refused; retry after unlock, and keep the blob.
StateMismatch
A sealed state that belongs to another user or device was offered for this one, and refused before its identity could be registered under an address it was never bound to.
Fields
state: DeviceAddrThe address the state was sealed for.
client: DeviceAddrThe address it was offered to.
Discovery(String)
The server’s service document could not be fetched or read, so the tenant handle does not know where the services are (decision 0090).
Implementations§
Trait Implementations§
Source§impl Error for Error
impl Error for Error
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()