diff --git a/actix-web/src/middleware/compat.rs b/actix-web/src/middleware/compat.rs index 963dfdabb..304881d63 100644 --- a/actix-web/src/middleware/compat.rs +++ b/actix-web/src/middleware/compat.rs @@ -53,7 +53,7 @@ where T: Transform, T::Future: 'static, T::Response: MapServiceResponseBody, - T::Error: Into, + T::Error: Into + std::fmt::Debug, { type Response = ServiceResponse; type Error = Error; @@ -63,10 +63,8 @@ where fn new_transform(&self, service: S) -> Self::Future { let fut = self.transform.new_transform(service); - Box::pin(async move { - let service = fut.await?; - Ok(CompatMiddleware { service }) - }) + + Box::pin(async move { fut.await.map(|service| CompatMiddleware { service }) }) } } @@ -78,7 +76,7 @@ impl Service for CompatMiddleware where S: Service, S::Response: MapServiceResponseBody, - S::Error: Into, + S::Error: Into + std::fmt::Debug, { type Response = ServiceResponse; type Error = Error; @@ -103,14 +101,17 @@ impl Future for CompatMiddlewareFuture where Fut: Future>, T: MapServiceResponseBody, - E: Into, + E: Into + std::fmt::Debug, { type Output = Result, Error>; fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { let res = match ready!(self.project().fut.poll(cx)) { Ok(res) => res, - Err(err) => return Poll::Ready(Err(err.into())), + Err(err) => { + log::error!("Request failed with error: {:?}", err); // for better visibility + return Poll::Ready(Err(err.into())); + } }; Poll::Ready(Ok(res.map_body()))