diff --git a/bilby/core/sampler/base_sampler.py b/bilby/core/sampler/base_sampler.py
index e590ee242d7b84fb89b83e8f4bae5f08339a4668..215104a98087bb91abc3964684edf1a0a5d0d458 100644
--- a/bilby/core/sampler/base_sampler.py
+++ b/bilby/core/sampler/base_sampler.py
@@ -512,7 +512,13 @@ class Sampler(object):
                         key, self) is False:
                     logger.debug("Cached value {} is unmatched".format(key))
                     use_cache = False
-            if self.meta_data["likelihood"] != self.cached_result.meta_data["likelihood"]:
+            try:
+                # Recursive check the dictionaries allowing for numpy arrays
+                np.testing.assert_equal(
+                    self.meta_data["likelihood"],
+                    self.cached_result.meta_data["likelihood"]
+                )
+            except AssertionError:
                 use_cache = False
             if use_cache is False:
                 self.cached_result = None