pub(crate) enum UploadError {
Http(Error),
Build(String),
UnexpectedResponse(String),
ServerError {
status: u16,
body: String,
},
}Expand description
Errors returned by upload_stream.
Every variant is non-fatal at the process level — the upload loop decides whether to retry or mark the row as permanently failed based on the error kind and the per-row attempt counter.
Variants§
Http(Error)
The HTTP transport itself failed (DNS, TCP, TLS, read/write, or an error surfaced by reqwest while reading the response body).
Build(String)
Constructing a [reqwest::multipart::Part] failed. In practice this
only fires for invalid filename characters; we keep it as a distinct
variant so the upload loop can log the offending field and move on.
UnexpectedResponse(String)
The server returned HTTP 2xx but the body did not contain the
"Call imported successfully." marker. This usually means the
server silently rejected the upload (e.g. duplicate call id or
malformed field) — retrying will not help.
ServerError
The server returned a non-2xx HTTP status. The body is included for operator diagnosis; very large bodies are truncated by the caller.
Trait Implementations§
Source§impl Debug for UploadError
impl Debug for UploadError
Source§impl Display for UploadError
impl Display for UploadError
Source§impl Error for UploadError
impl Error for UploadError
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
Auto Trait Implementations§
impl Freeze for UploadError
impl !RefUnwindSafe for UploadError
impl Send for UploadError
impl Sync for UploadError
impl Unpin for UploadError
impl !UnwindSafe for UploadError
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.