diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index e76ee2779af7d45f137e43c242b844be2712ed17..73eea157a4bea9f0d02719351c39c58009f59936 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -116,7 +116,9 @@ class Cache(object):
     def invalidate(self, key):
         self.check_thread()
         if not isinstance(key, tuple):
-            raise ValueError("keyargs must be a tuple.")
+            raise TypeError(
+                "The cache key must be a tuple not %r" % (type(key),)
+            )
 
         # Increment the sequence number so that any SELECT statements that
         # raced with the INSERT don't update the cache (SYN-369)