From 6c485c282dced1e60c0702ae8e9278fcc6a4f54c Mon Sep 17 00:00:00 2001
From: Erik Johnston <erik@matrix.org>
Date: Wed, 26 Nov 2014 16:06:20 +0000
Subject: [PATCH] Catch exceptions when trying to add an entry to rooms tables

---
 synapse/handlers/federation.py | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index 252c1f1684..5c6ed28e62 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -18,7 +18,9 @@
 from ._base import BaseHandler
 
 from synapse.api.events.utils import prune_event
-from synapse.api.errors import AuthError, FederationError, SynapseError
+from synapse.api.errors import (
+    AuthError, FederationError, SynapseError, StoreError,
+)
 from synapse.api.events.room import RoomMemberEvent
 from synapse.api.constants import Membership
 from synapse.util.logutils import log_function
@@ -174,11 +176,14 @@ class FederationHandler(BaseHandler):
         room = yield self.store.get_room(event.room_id)
 
         if not room:
-            yield self.store.store_room(
-                room_id=event.room_id,
-                room_creator_user_id="",
-                is_public=False,
-            )
+            try:
+                yield self.store.store_room(
+                    room_id=event.room_id,
+                    room_creator_user_id="",
+                    is_public=False,
+                )
+            except StoreError:
+                logger.exception("Failed to store room.")
 
         if not backfilled:
             extra_users = []
-- 
GitLab