diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,10 +1,16 @@
-# Changelog for postgres-pure
+# Changelog for postgresql-pure
 
-## 0.1.0
+## 0.1.1.0
 
 2019.10.21
 
-Release.
+- Fix an issue sometimes missing “Error” responses after “Sync” requests.
+
+## 0.1.0.0
+
+2019.10.21
+
+- Release.
 
 ### Known Issues
 
diff --git a/postgresql-pure.cabal b/postgresql-pure.cabal
--- a/postgresql-pure.cabal
+++ b/postgresql-pure.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: bbd1588f7e1a8f7ac0f863daa68188df3e5ac652f2214749c877d9d10d1610d4
+-- hash: 66e926e8e00816948836fb12c40af085773cf4e85b46359544cfacb18c35295c
 
 name:           postgresql-pure
-version:        0.1.0.0
+version:        0.1.1.0
 synopsis:       pure Haskell PostgreSQL driver
 description:    pure Haskell PostgreSQL driver
 category:       Database
diff --git a/src/Database/PostgreSQL/Pure/Internal/Exception.hs b/src/Database/PostgreSQL/Pure/Internal/Exception.hs
--- a/src/Database/PostgreSQL/Pure/Internal/Exception.hs
+++ b/src/Database/PostgreSQL/Pure/Internal/Exception.hs
@@ -71,7 +71,7 @@
 
 data InternalException
   = InternalResponseParsingFailed String BS.ByteString
-  | InternalErrorResponse ErrorFields (Maybe TransactionState)
+  | InternalErrorResponse ErrorFields (Maybe TransactionState) BS.ByteString
   | InternalExtraData BS.ByteString
   deriving (Show, Read, Eq, Typeable)
 
@@ -79,7 +79,7 @@
 
 internalExcepionToExposedException :: InternalException -> Exception
 internalExcepionToExposedException e@InternalResponseParsingFailed {} = Exception $ ResponseParsingFailed $ displayException e
-internalExcepionToExposedException (InternalErrorResponse (ErrorFields fields) transactionState) =
+internalExcepionToExposedException (InternalErrorResponse (ErrorFields fields) transactionState _) =
   Exception ErrorResponse { severity, code, message, transactionState }
   where
     (severity, code, message) = map3 BSS.fromShort $ foldr go ("", "", "") fields
diff --git a/src/Database/PostgreSQL/Pure/Internal/Query.hs b/src/Database/PostgreSQL/Pure/Internal/Query.hs
--- a/src/Database/PostgreSQL/Pure/Internal/Query.hs
+++ b/src/Database/PostgreSQL/Pure/Internal/Query.hs
@@ -58,6 +58,7 @@
 import           Control.Exception.Safe                      (throw, try)
 import           Control.Monad                               (void, when)
 import           Control.Monad.Fail                          (MonadFail)
+import           Control.Monad.State.Strict                  (put)
 import qualified Data.Attoparsec.ByteString                  as AP
 import qualified Data.Attoparsec.Combinator                  as AP
 import qualified Data.ByteString.Builder                     as BSB
@@ -246,37 +247,38 @@
 -- | To build and send the given message and a “Flush” message and to receive and parse those responses.
 flush :: Message m => Connection -> m -> IO (MessageResult m)
 flush Connection { socket, sendingBuffer, receptionBuffer, config } m =
-  Exception.convert $ do
-    r <- try $
-      runSocketIO socket sendingBuffer receptionBuffer config $ do
+  Exception.convert $
+    runSocketIO socket sendingBuffer receptionBuffer config $ do
+      r <- try $ do
         buildAndSend $ builder m <> BSB.byteString Builder.flush
         receive $ parser m
-    case r of
-      Right r -> pure r
-      Left (Exception.InternalErrorResponse fields _) -> do
-        ReadyForQuery ts <-
-          runSocketIO socket sendingBuffer receptionBuffer config $ do
+      case r of
+        Right r -> pure r
+        Left (Exception.InternalErrorResponse fields _ _) -> do
+          ReadyForQuery ts <- do
+            put mempty
             send Builder.sync
             receive Parser.readyForQuery
-        throw $ Exception.InternalErrorResponse fields $ Just ts
-      Left e -> throw e
+          throw $ Exception.InternalErrorResponse fields (Just ts) mempty
+        Left e -> throw e
 
 -- | To build and send the given message and a “Sync” message and to receive and parse those responses.
 sync :: Message m => Connection -> m -> IO (MessageResult m, TransactionState)
 sync Connection { socket, sendingBuffer, receptionBuffer, config } m =
-  Exception.convert $ do
-    r <-
-      try $
-        runSocketIO socket sendingBuffer receptionBuffer config $ do
+  Exception.convert $
+    runSocketIO socket sendingBuffer receptionBuffer config $ do
+      r <-
+        try $ do
           buildAndSend $ builder m <> BSB.byteString Builder.sync
           (r, ReadyForQuery ts) <- receive $ (,) <$> parser m <*> Parser.readyForQuery
           pure (r, ts)
-    case r of
-      Right r -> pure r
-      Left (Exception.InternalErrorResponse fields _) -> do
-        ReadyForQuery ts <- runSocketIO socket sendingBuffer receptionBuffer config $ receive Parser.readyForQuery
-        throw $ Exception.InternalErrorResponse fields $ Just ts
-      Left e -> throw e
+      case r of
+        Right r -> pure r
+        Left (Exception.InternalErrorResponse fields _ rest) -> do
+          put rest
+          ReadyForQuery ts <- receive Parser.readyForQuery
+          throw $ Exception.InternalErrorResponse fields (Just ts) mempty
+        Left e -> throw e
 
 -- | To send @BEGIN@ SQL statement.
 begin :: ExecutedProcedure ()
diff --git a/src/Database/PostgreSQL/Pure/Internal/SocketIO.hs b/src/Database/PostgreSQL/Pure/Internal/SocketIO.hs
--- a/src/Database/PostgreSQL/Pure/Internal/SocketIO.hs
+++ b/src/Database/PostgreSQL/Pure/Internal/SocketIO.hs
@@ -79,8 +79,8 @@
     result <- AP.parseWith recv parser carry
     case result of
       AP.Done rest response -> pure (response, rest)
-      AP.Fail rest [] msg      -> throw $ Exception.InternalResponseParsingFailed msg rest
-      AP.Fail rest ctxs msg    -> throw $ Exception.InternalResponseParsingFailed (intercalate " > " ctxs <> ": " <> msg) rest
+      AP.Fail rest [] msg   -> throw $ Exception.InternalResponseParsingFailed msg rest
+      AP.Fail rest ctxs msg -> throw $ Exception.InternalResponseParsingFailed (intercalate " > " ctxs <> ": " <> msg) rest
       AP.Partial _          -> Exception.cantReachHere
 
 receiveJust :: AP.Parser response -> SocketIO response
@@ -95,14 +95,12 @@
 receive parser = do
   r <- try $ receiveJust parser
   case r of
-    Right r             -> pure r
-    Left e@(Exception.InternalResponseParsingFailed _ raw) -> do
-      let
-        r = AP.parseOnly Parser.skipUntilError raw
-      throw $
-        case r of
-          Right (Error fields) -> Exception.InternalErrorResponse fields Nothing
-          Left _               -> e
+    Right r -> pure r
+    Left e@(Exception.InternalResponseParsingFailed _ raw) ->
+      case AP.parse Parser.skipUntilError raw of
+        AP.Done rest (Error fields) -> throw $ Exception.InternalErrorResponse fields Nothing rest
+        AP.Fail _ _ _               -> throw e
+        AP.Partial _                -> throw e
     Left e -> throw e
 
 -- Before network 3.0.0.0, recvBuf raises error on EOF. Otherwise it returns 0 on EOF.
diff --git a/test-relational-record/DataSource.hs b/test-relational-record/DataSource.hs
--- a/test-relational-record/DataSource.hs
+++ b/test-relational-record/DataSource.hs
@@ -4,4 +4,4 @@
 import           Database.HDBC.PostgreSQL (Connection, connectPostgreSQL)
 
 connect :: IO Connection
-connect = connectPostgreSQL "user='postgres'"
+connect = connectPostgreSQL "host='localhost' user='postgres'"
