diff --git a/speechmatics.cabal b/speechmatics.cabal
--- a/speechmatics.cabal
+++ b/speechmatics.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bb5a8fd3e472f8d525b9a3ea29afda678c16f8324dfecd227ed234ac777821d8
+-- hash: 72cc809bd43f4f4c0533e2db299a68b2c0ba8614bf8b9391b9a614715fcea2c6
 
 name:           speechmatics
-version:        0.7.1.0
+version:        0.7.2.0
 synopsis:       Speechmatics api client
 description:    Upload audio files to speechmatics to get a transcription
 category:       API
@@ -39,6 +39,7 @@
     , mime-types
     , monad-control
     , mtl
+    , split
     , text
     , text-format-heavy
     , wreq
diff --git a/src/Speechmatics/Request.hs b/src/Speechmatics/Request.hs
--- a/src/Speechmatics/Request.hs
+++ b/src/Speechmatics/Request.hs
@@ -18,7 +18,7 @@
 import           Network.HTTP.Client         (defaultManagerSettings,
                                               managerResponseTimeout,
                                               responseTimeoutMicro,
-                                              HttpException)
+                                              HttpException(..))
 
 import           Data.Bifunctor
 import           Network.HTTP.Client.OpenSSL
@@ -33,7 +33,7 @@
 import qualified Data.ByteString.Lazy.Char8  as C8LBS
 import           Data.Maybe
 import           Data.Monoid
-import           Data.Text
+import qualified          Data.Text as Text
 import            qualified Data.Text.Lazy as Lazy
 import qualified Network.Wreq.Session        as Sess
 import qualified Network.Wreq.Types as Types
@@ -45,6 +45,8 @@
 import qualified Speechmatics.Log as Log
 import qualified Data.ByteString as BS
 import Control.Monad.Trans.Control(liftWith)
+import Data.Foldable(traverse_)
+import Data.List.Split
 
 class AsHttpExceptiont t where
   _HttpException :: Prism' t HttpException
@@ -58,19 +60,29 @@
   liftWith (\run -> 
     catching _HttpException
       func 
-      (\x -> 
-        (run $ Log.error $ pack ("Got an http exception: " <> show x)) >>
+      (\x -> do
+        let handled = handleException x
+        (traverse_ (run . Log.error . Text.pack) (["Got an http exception: "] <> handled)) >>
           throwIO x
         )
       )
 
+-- | heavy logger doesn't like '{'
+format :: Char -> Char
+format '{' = '<'
+format '}' = '>'
+format x = x
 
+handleException :: HttpException -> [String]
+handleException (HttpExceptionRequest request content) = ["Failed to make request:"] <> lines (fmap format (show request)) <> [" With content:"] <> chunksOf 120 (fmap format (show content))
+handleException x = lines (show x)
+
 getWith :: Wreq.Options -> Sess.Session -> String -> LoggingT IO (Wreq.Response C8LBS.ByteString)
 getWith opts sess str = do
-  Log.debug (pack ("Making get request to " <> str))
+  Log.debug (Text.pack ("Making get request to " <> str))
   logException $ Sess.getWith opts sess str
 
 postWith ::  Types.Postable a => Wreq.Options -> Sess.Session -> String -> a -> LoggingT IO (Wreq.Response C8LBS.ByteString)
 postWith opts sess str post = do
-  Log.debug (pack ("Making get request to " <> str))
+  Log.debug (Text.pack ("Making get request to " <> str))
   logException $ Sess.postWith opts sess str post
