pub enum FaucetError {
Show 14 variants
Http(Error),
HttpStatus {
status: u16,
url: String,
body: String,
},
Json(Error),
JsonPath(String),
Auth(String),
RateLimited(Duration),
Url(String),
Transform(String),
Config(String),
Source(String),
Sink(String),
QualityFailure {
check: String,
message: String,
},
State(String),
Custom(Box<dyn Error + Send + Sync>),
}Expand description
All possible errors returned by faucet-stream.
Variants§
Http(Error)
HttpStatus
An HTTP response with a non-success status code.
Contains the status code, URL, and (truncated) response body for
debugging. Whether this error is retriable depends on the status code
— see FaucetError::is_retriable.
Json(Error)
JsonPath(String)
Auth(String)
RateLimited(Duration)
The server responded with HTTP 429 Too Many Requests.
The inner value is the duration to wait before retrying,
parsed from the Retry-After response header (default: 60 s).
Url(String)
A URL could not be constructed or parsed.
Transform(String)
A record transform could not be compiled or applied (e.g. invalid regex).
Config(String)
A configuration or validation error (e.g. invalid endpoint, missing descriptor).
Source(String)
A source operation failed (e.g. database query error, file read error).
Sink(String)
A sink operation failed (e.g. BigQuery insert error).
QualityFailure
A data-quality check failed under an abort policy.
State(String)
A state-store operation failed (read/write/delete of a replication bookmark, checkpoint, or other persisted pipeline state).
Custom(Box<dyn Error + Send + Sync>)
A custom error from a third-party connector.
Use this to wrap your own error types without losing the error chain:
use faucet_core::FaucetError;
let err = FaucetError::Custom(Box::new(std::io::Error::new(
std::io::ErrorKind::Other,
"my connector failed",
)));Implementations§
Source§impl FaucetError
impl FaucetError
Sourcepub fn is_retriable(&self) -> bool
pub fn is_retriable(&self) -> bool
Whether this error is transient and the request should be retried.
Retriable errors:
- Network / connection errors (
Httpfrom reqwest) - Server errors (5xx status codes)
- Rate limiting (429 — handled separately with
Retry-After)
Non-retriable errors:
- Client errors (4xx except 429)
- JSON parse / JSONPath / auth / transform errors
Trait Implementations§
Source§impl Debug for FaucetError
impl Debug for FaucetError
Source§impl Display for FaucetError
impl Display for FaucetError
Source§impl Error for FaucetError
impl Error for FaucetError
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()