#[non_exhaustive]pub enum DynoxideError {
Show 16 variants
ResourceNotFoundException(String),
ResourceInUseException(String),
ValidationException(String),
KeyEmptyValueValidation(String),
ConditionalCheckFailedException(String, Option<HashMap<String, AttributeValue>>),
TransactionCanceledException(String, Vec<CancellationReason>),
ItemCollectionSizeLimitExceededException(String),
DuplicateItemException(String),
ProvisionedThroughputExceededException(String),
SerializationException(String),
LimitExceededException(String),
AccessDeniedException(String),
IdempotentParameterMismatchException(String),
InternalServerError(String),
ConversionError(ConversionError),
SqliteError(Error),
}Expand description
DynamoDB error types.
Each variant corresponds to a DynamoDB API error, carrying a human-readable message that matches DynamoDB’s actual error messages.
Marked #[non_exhaustive] as of 0.10.0 (itself a breaking release), so
later variant additions stay non-breaking. Downstream match arms over
this enum must include a wildcard.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
ResourceNotFoundException(String)
Table or resource not found.
ResourceInUseException(String)
Table or resource already exists / is in use.
ValidationException(String)
Input validation failed.
KeyEmptyValueValidation(String)
An empty-string or empty-binary key value on a write. Serialises identically
to ValidationException, but is a distinct variant so the transaction loops can
surface it as a top-level error instead of a ValidationError cancellation
reason (#95).
ConditionalCheckFailedException(String, Option<HashMap<String, AttributeValue>>)
Conditional check (ConditionExpression) failed on write.
Optionally carries the existing item when ReturnValuesOnConditionCheckFailure is ALL_OLD.
TransactionCanceledException(String, Vec<CancellationReason>)
One or more transaction conditions failed. Carries the message and per-item cancellation reasons.
ItemCollectionSizeLimitExceededException(String)
Item collection exceeded size limit (10 GB per partition key value).
DuplicateItemException(String)
Duplicate primary key on PartiQL INSERT (distinct from ConditionalCheckFailedException).
ProvisionedThroughputExceededException(String)
Throughput exceeded (stored but not enforced — included for API fidelity).
SerializationException(String)
Request body deserialisation failed (malformed JSON, wrong types).
LimitExceededException(String)
Too many concurrent operations or index updates.
AccessDeniedException(String)
Access denied (e.g. non-existent resource ARN in tag operations).
IdempotentParameterMismatchException(String)
Idempotent request token reused with different request content.
InternalServerError(String)
Catch-all for internal / unexpected errors (SQLite failures, etc.).
ConversionError(ConversionError)
Type conversion error (e.g. wrong AttributeValue variant).
SqliteError(Error)
SQLite error (converted from rusqlite).
Implementations§
Source§impl DynoxideError
impl DynoxideError
Sourcepub fn error_type(&self) -> &'static str
pub fn error_type(&self) -> &'static str
Returns the DynamoDB __type string for this error.
Sourcepub fn short_error_code(&self) -> &'static str
pub fn short_error_code(&self) -> &'static str
Returns the short error code used in BatchExecuteStatement per-statement errors.
These are the short-form codes that DynamoDB uses in BatchStatementError.Code,
as opposed to the fully qualified __type strings from error_type().
Sourcepub fn status_code(&self) -> u16
pub fn status_code(&self) -> u16
Returns the HTTP status code for this error.
Sourcepub fn to_response(&self) -> ErrorResponse
pub fn to_response(&self) -> ErrorResponse
Convert to a DynamoDB-compatible JSON error response body.
Trait Implementations§
Source§impl Debug for DynoxideError
impl Debug for DynoxideError
Source§impl Display for DynoxideError
impl Display for DynoxideError
Source§impl Error for DynoxideError
impl Error for DynoxideError
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()
Source§impl From<BackendError> for DynoxideError
Most backend failures (BackendError) are storage-level faults: a locked
database, an I/O error, a constraint the application layer did not
anticipate. None of those is part of DynamoDB’s client-facing error
contract, so they surface as InternalServerError (HTTP 500), matching how
a raw rusqlite::Error surfaces via SqliteError.
impl From<BackendError> for DynoxideError
Most backend failures (BackendError) are storage-level faults: a locked
database, an I/O error, a constraint the application layer did not
anticipate. None of those is part of DynamoDB’s client-facing error
contract, so they surface as InternalServerError (HTTP 500), matching how
a raw rusqlite::Error surfaces via SqliteError.
The one exception is BackendError::Validation: a backend method such as
set_tags enforces a client-facing limit (the 50-tag cap) and raises a
ValidationException. That crosses the trait boundary as
BackendError::Validation and is restored here to its ValidationException
(HTTP 400) so the envelope is unchanged from calling Storage directly.
A one-way From is deliberate rather than merging the two types:
BackendError is the narrow storage vocabulary, DynoxideError the wider
API vocabulary. A merge is deferred.