diff --git a/packages/fullstack/src/adapters/axum_adapter.rs b/packages/fullstack/src/adapters/axum_adapter.rs index f7bc4dfe1..95d9ee6cd 100644 --- a/packages/fullstack/src/adapters/axum_adapter.rs +++ b/packages/fullstack/src/adapters/axum_adapter.rs @@ -263,8 +263,8 @@ where let res = service.run(req); match res.await { Ok(res) => Ok::<_, std::convert::Infallible>(res.map(|b| b.into())), - Err(_e) => { - let mut res = Response::new(Body::empty()); + Err(e) => { + let mut res = Response::new(Body::from(e.to_string())); *res.status_mut() = StatusCode::INTERNAL_SERVER_ERROR; Ok(res) } diff --git a/packages/fullstack/src/adapters/warp_adapter.rs b/packages/fullstack/src/adapters/warp_adapter.rs index e5239c01a..5afcb5077 100644 --- a/packages/fullstack/src/adapters/warp_adapter.rs +++ b/packages/fullstack/src/adapters/warp_adapter.rs @@ -143,7 +143,17 @@ pub fn register_server_fns(server_fn_route: &'static str) -> BoxedFilter<(impl R let req = warp::hyper::Request::from_parts(parts, bytes.into()); service.run(req).await.map_err(|err| { tracing::error!("Server function error: {}", err); - warp::reject::reject() + + struct WarpServerFnError(String); + impl std::fmt::Debug for WarpServerFnError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.0) + } + } + + impl warp::reject::Reject for WarpServerFnError {} + + warp::reject::custom(WarpServerFnError(err.to_string())) }) } })