diff --git a/src/backend/utils/cache/inval.c b/src/backend/utils/cache/inval.c
index 30048e153e5..97456e8888d 100644
--- a/src/backend/utils/cache/inval.c
+++ b/src/backend/utils/cache/inval.c
@@ -574,8 +574,15 @@ static void
 ProcessInvalidationMessages(InvalidationMsgsGroup *group,
 							void (*func) (SharedInvalidationMessage *msg))
 {
+	bool	ExitOnAnyErrorSave = ExitOnAnyError;
+
+	/*
+	 * Failure to invalidate cache is serious enough for the backend to exit.
+	 */
+	ExitOnAnyError = true;
 	ProcessMessageSubGroup(group, CatCacheMsgs, func(msg));
 	ProcessMessageSubGroup(group, RelCacheMsgs, func(msg));
+	ExitOnAnyError = ExitOnAnyErrorSave;
 }
 
 /*
