Skip to main content

blocking_task_failed

Function blocking_task_failed 

Source
pub(crate) fn blocking_task_failed(route: &str, error: JoinError) -> ApiError
Expand description

The 500 for a spawn_blocking task that panicked instead of answering.

A panic inside a blocking task never reaches the worker that awaited it — it surfaces as a JoinError instead — so this is the one place that becomes a response rather than a connection that hangs up with nothing said.

A JoinError’s own text is the panic payload, which is whatever the line that panicked passed to panic! or to expect: a file it was reading, a row it was holding, an assertion written for whoever is reading the log. route and that payload go to the log line, and the caller — who may be anyone, since com.atproto.sync.getBlob reaches here without a credential — is told that the request was not answered and nothing else.