pub(crate) fn blocking_task_failed(route: &str, error: JoinError) -> ApiErrorExpand 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.