diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## 0.21.4
+### Fixed
+- Fix shared cache case where head is set beyond header chain by another node.
+
 ## 0.21.3
 ### Fixed
 - Fix bug where best head was not being registered in cache.
diff --git a/haskoin-store.cabal b/haskoin-store.cabal
--- a/haskoin-store.cabal
+++ b/haskoin-store.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 703917c4565bae5182fdc9a220de64a5b2fd8db190fb70c6297898a91f677dd3
+-- hash: 5d2420570a90418f4e6d3bacfad7ad4322d1f833803722530d53417acf035e02
 
 name:           haskoin-store
-version:        0.21.3
+version:        0.21.4
 synopsis:       Storage and index for Bitcoin and Bitcoin Cash
 description:    Store blocks, transactions, and balances for Bitcoin or Bitcoin Cash, and make that information via REST API.
 category:       Bitcoin, Finance, Network
diff --git a/src/Network/Haskoin/Store/CacheWriter.hs b/src/Network/Haskoin/Store/CacheWriter.hs
--- a/src/Network/Haskoin/Store/CacheWriter.hs
+++ b/src/Network/Haskoin/Store/CacheWriter.hs
@@ -183,16 +183,10 @@
                             $(logErrorS) "Cache" $
                                 "No header for cache head: " <>
                                 blockHashToHex cachehead
-                            error . cs $
-                                "No header for cache head: " <>
-                                blockHashToHex cachehead
                         Just cacheheadnode -> go2 newheadnode cacheheadnode
     go2 newheadnode cacheheadnode
         | nodeHeight cacheheadnode > nodeHeight newheadnode = do
             $(logErrorS) "Cache" $
-                "Cache head is above new best block: " <>
-                blockHashToHex (headerHash (nodeHeader newheadnode))
-            throwIO . LogicError . cs $
                 "Cache head is above new best block: " <>
                 blockHashToHex (headerHash (nodeHeader newheadnode))
         | otherwise = do
