diff --git a/src/network/index.js b/src/network/index.js
index <HASH>..<HASH> 100644
--- a/src/network/index.js
+++ b/src/network/index.js
@@ -47,14 +47,12 @@ module.exports = class Network {
   }
 
   _onConnection (conn) {
+    log('connected')
     pull(
       conn,
       lp.decode(),
-      pull.collect((err, msgs) => msgs.forEach((data) => {
+      pull.through((data) => {
         log('raw message', data)
-        if (err) {
-          return this.bitswap._receiveError(err)
-        }
         let msg
         try {
           msg = Message.fromProto(data)
@@ -67,7 +65,12 @@ module.exports = class Network {
           }
           this.bitswap._receiveMessage(peerInfo.id, msg)
         })
-      }))
+      }),
+      pull.onEnd((err) => {
+        if (err) {
+          return this.bitswap._receiveError(err)
+        }
+      })
     )
   }
 
@@ -105,6 +108,7 @@ module.exports = class Network {
     }
 
     this.libp2p.dialByPeerInfo(peerInfo, PROTOCOL_IDENTIFIER, (err, conn) => {
+      log('dialed %s', peerInfo.id.toB58String(), err)
       if (err) {
         return cb(err)
       }
fix(network): correct msg processing