diff --git a/exchange/bitswap/bitswap.go b/exchange/bitswap/bitswap.go
index 7e8a0f7af887d74c7a1c4b5d1a9adc431711ef2d..020c8d16a5f22fcdb507eeaf452fa1efc28dc7ea 100644
--- a/exchange/bitswap/bitswap.go
+++ b/exchange/bitswap/bitswap.go
@@ -295,6 +295,11 @@ func (bs *Bitswap) ReceiveMessage(ctx context.Context, p peer.ID, incoming bsmsg
 			bs.counterLk.Lock()
 			bs.blocksRecvd++
 			has, err := bs.blockstore.Has(b.Key())
+			if err != nil {
+				bs.counterLk.Unlock()
+				log.Noticef("blockstore.Has error: %s", err)
+				return
+			}
 			if err == nil && has {
 				bs.dupBlocksRecvd++
 			}