diff --git a/om-http.cabal b/om-http.cabal
--- a/om-http.cabal
+++ b/om-http.cabal
@@ -1,6 +1,6 @@
 cabal-version:       3.0
 name:                om-http
-version:             0.4.0.0
+version:             0.4.1.0
 synopsis:            Http utilities.
 description:         Random HTTP utilities.
 homepage:            https://github.com/owensmurray/om-http
@@ -8,7 +8,7 @@
 license-file:        LICENSE
 author:              Rick Owens
 maintainer:          rick@owensmurray.com
-copyright:           2022 Owens Murray
+copyright:           2025 Owens Murray
 category:            Web
 build-type:          Simple
 extra-source-files:
@@ -17,27 +17,28 @@
 
 common dependencies
   build-depends:
-    , async              >= 2.2.4     && < 2.3
-    , base               >= 4.15.1.0  && < 4.21
+    , aeson              >= 2.2.2.0   && < 2.3
+    , async              >= 2.2.5     && < 2.3
+    , base               >= 4.20.0.0  && < 4.21
     , base64             >= 1.0       && < 1.1
-    , bytestring         >= 0.11.1.0  && < 0.13
-    , case-insensitive   >= 1.2.1.0   && < 1.3
-    , directory          >= 1.3.6.2   && < 1.4
-    , filepath           >= 1.4.2.1   && < 1.6
-    , http-types         >= 0.12.3    && < 0.13
-    , mime-types         >= 0.1.1.0   && < 0.2
-    , monad-logger-aeson >= 0.4.1.3   && < 0.5
-    , network            >= 3.1.2.7   && < 3.3
-    , om-show            >= 0.1.2.8   && < 0.2
-    , safe-exceptions    >= 0.1.7.3   && < 0.2
-    , servant            >= 0.19      && < 0.21
-    , template-haskell   >= 2.17.0.0  && < 2.23
-    , text               >= 2.0       && < 2.2
-    , time               >= 1.9.3     && < 1.13
-    , unix               >= 2.7.2.2   && < 2.9
-    , uuid               >= 1.3.15    && < 1.4
-    , wai                >= 3.2.3     && < 3.3
-    , warp               >= 3.3.23    && < 3.5
+    , bytestring         >= 0.11.5.0  && < 0.13
+    , case-insensitive   >= 1.2.0.11  && < 1.3
+    , directory          >= 1.3.7.1   && < 1.4
+    , filepath           >= 1.4.101.0 && < 1.6
+    , http-types         >= 0.12.4    && < 0.13
+    , mime-types         >= 0.1.0.0   && < 0.2
+    , monad-logger-aeson >= 0.4.1.2   && < 0.5
+    , network            >= 3.1.2.9   && < 3.3
+    , om-show            >= 0.1.2.10  && < 0.2
+    , safe-exceptions    >= 0.1.7.4   && < 0.2
+    , servant            >= 0.20.1    && < 0.21
+    , template-haskell   >= 2.22.0.0  && < 2.23
+    , text               >= 2.1.1     && < 2.2
+    , time               >= 1.9.2     && < 1.13
+    , unix               >= 2.7.3     && < 2.9
+    , uuid               >= 1.3.16    && < 1.4
+    , wai                >= 3.2.0     && < 3.3
+    , warp               >= 3.3.21    && < 3.5
 
 common warnings
   ghc-options:
diff --git a/src/OM/HTTP.hs b/src/OM/HTTP.hs
--- a/src/OM/HTTP.hs
+++ b/src/OM/HTTP.hs
@@ -22,7 +22,8 @@
 
 import Control.Concurrent (threadDelay)
 import Control.Concurrent.Async (concurrently_)
-import Control.Exception (try)
+import Control.Exception (someExceptionContext, try)
+import Control.Exception.Context (displayExceptionContext)
 import Control.Exception.Safe (SomeException, bracket, finally, throwM, tryAny)
 import Control.Monad (join, void)
 import Control.Monad.IO.Class (MonadIO(liftIO))
@@ -30,6 +31,7 @@
   ( LoggingT(runLoggingT), Message((:#)), (.=), Loc, LogLevel, LogSource, LogStr
   , MonadLoggerIO, logError, logInfo
   )
+import Data.Aeson (object)
 import Data.Base64.Types (extractBase64)
 import Data.ByteString (ByteString)
 import Data.ByteString.Base64 (encodeBase64)
@@ -60,7 +62,7 @@
     , requestHeaders, requestMethod
     )
   , Application, Middleware, Response, ResponseReceived, mapResponseHeaders
-  , responseLBS, responseRaw, responseStatus
+  , responseHeaders, responseLBS, responseRaw, responseStatus
   )
 import Network.Wai.Handler.Warp (run)
 import OM.Show (showt)
@@ -209,6 +211,7 @@
           logError $
             "`app` failed with exception. The exception will be re-thrown." :#
             [ "exception" .= show (err :: SomeException)
+            , "context" .= displayExceptionContext (someExceptionContext err)
             ]
           throwM err
         Right val -> pure val
@@ -225,7 +228,20 @@
           Left err -> do
             logError $
               "`respond` failed with exception. The exception will be re-thrown." :#
-              ["exception" .= show (err :: SomeException)]
+              [ "exception" .= show (err :: SomeException)
+              , "context" .= displayExceptionContext (someExceptionContext err)
+              , "response" .= object
+                  [ "status" .= showStatus (responseStatus response)
+                  , "headers" .=
+                      fmap
+                        (\(name, val) ->
+                          decodeUtf8Safe (CI.original name)
+                          <> ": "
+                          <> decodeUtf8Safe val
+                        )
+                        (responseHeaders response)
+                  ]
+              ]
             throwM err
           Right ack -> pure ack
         now <- ack `seq` liftIO getCurrentTime
@@ -299,6 +315,7 @@
       uuid <- getUUID
       logError $ "Internal Server Error" :#
         [ "exception" .= show err
+        , "context" .= displayExceptionContext (someExceptionContext err)
         , "id" .= uuid
         ]
       return uuid
