Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions services/cargohold/src/CargoHold/App.hs
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,8 @@ import Bilge.RPC (HasRequestId (..))
import qualified CargoHold.AWS as AWS
import CargoHold.Options (AWSOpts, Opts, S3Compatibility (..), brig)
import qualified CargoHold.Options as Opt
import Control.Error (ExceptT, exceptT)
import Control.Exception (throw)
import Control.Error (ExceptT, runExceptT)
import Control.Exception (catch, throwIO)
import Control.Lens (lensField, lensRules, makeLensesWith, non, (.~), (?~), (^.))
import Control.Monad.Catch (MonadCatch, MonadMask, MonadThrow)
import Data.Id
Expand Down Expand Up @@ -241,4 +241,12 @@ executeBrigInteral action = do
type Handler = ExceptT Error App

runHandler :: Env -> Handler a -> IO a
runHandler e h = runAppT e (exceptT throw pure h)
runHandler env h =
catch
(runAppT env (runExceptT h) >>= either throwIO pure)
$ \(e :: SomeException) -> do
Log.err env.appLogger $
Log.msg ("IO Exception occurred" :: ByteString)
. Log.field "message" (displayException e)
. Log.field "request" (unRequestId env.requestId)
throwIO e