#[non_exhaustive]pub enum WebhookError {
Show 15 variants
MissingSignature,
InvalidSignature(String),
SignatureVerificationFailed,
TimestampExpired {
received: i64,
now: i64,
tolerance: u64,
},
MissingTimestamp,
MissingSecret(String),
UnknownProvider(String),
UnknownEvent(String),
InvalidPayload(String),
HandlerFailed(String),
Database(String),
Condition(String),
Mapping(String),
ProviderNotConfigured(String),
Configuration(String),
}Expand description
Errors that can occur during webhook request processing.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
MissingSignature
The incoming request did not include the expected signature header for the provider.
InvalidSignature(String)
The signature header was present but could not be parsed according to the provider’s format. The inner string contains a description of the parse failure.
SignatureVerificationFailed
The computed HMAC or asymmetric signature did not match the value in the request header.
TimestampExpired
The webhook request timestamp is outside the configured replay-protection tolerance window.
Fields
MissingTimestamp
The provider requires a timestamp header for replay protection, but none was present.
MissingSecret(String)
The secret named in the configuration could not be retrieved from the secret provider. The inner string is the secret name that was not found.
UnknownProvider(String)
The request arrived for a provider name that is not registered in the ProviderRegistry.
The inner string is the unrecognised provider name.
UnknownEvent(String)
The event type extracted from the payload has no corresponding handler in the configuration. The inner string is the unrecognised event type.
InvalidPayload(String)
The request body could not be deserialised as a valid JSON payload. The inner string is the serde_json error message.
HandlerFailed(String)
The database function called by the event handler returned an error or panicked. The inner string contains the handler’s error message.
Database(String)
A sqlx database operation failed during transaction management or idempotency checking. The inner string is the sqlx error message.
Condition(String)
Evaluation of a configured conditional expression failed. The inner string describes the evaluation error.
Mapping(String)
A field mapping from the webhook payload to a function parameter failed. The inner string describes which mapping could not be applied.
ProviderNotConfigured(String)
A webhook was received for a provider that has no entry in the active configuration. The inner string is the provider name.
Configuration(String)
A configuration field contains an invalid value. The inner string describes the validation failure.
Trait Implementations§
Source§impl Debug for WebhookError
impl Debug for WebhookError
Source§impl Display for WebhookError
impl Display for WebhookError
Source§impl Error for WebhookError
impl Error for WebhookError
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()
Source§impl From<Error> for WebhookError
impl From<Error> for WebhookError
Auto Trait Implementations§
impl Freeze for WebhookError
impl RefUnwindSafe for WebhookError
impl Send for WebhookError
impl Sync for WebhookError
impl Unpin for WebhookError
impl UnsafeUnpin for WebhookError
impl UnwindSafe for WebhookError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more