summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/changes/bug_missing_design_doc_handler1
-rw-r--r--client/src/leap/soledad/client/sync.py4
2 files changed, 4 insertions, 1 deletions
diff --git a/client/changes/bug_missing_design_doc_handler b/client/changes/bug_missing_design_doc_handler
new file mode 100644
index 00000000..72e42b85
--- /dev/null
+++ b/client/changes/bug_missing_design_doc_handler
@@ -0,0 +1 @@
+o Handle missing design doc at GET (get_sync_info). Soledad server can handle this during sync.
diff --git a/client/src/leap/soledad/client/sync.py b/client/src/leap/soledad/client/sync.py
index 225d3e2d..2276db2a 100644
--- a/client/src/leap/soledad/client/sync.py
+++ b/client/src/leap/soledad/client/sync.py
@@ -22,6 +22,7 @@ import logging
from twisted.internet import defer
from u1db import errors
+from leap.soledad.common.errors import MissingDesignDocError
from u1db.sync import Synchronizer
@@ -73,8 +74,9 @@ class SoledadSynchronizer(Synchronizer):
(self.target_replica_uid, target_gen, target_trans_id,
target_my_gen, target_my_trans_id) = yield \
sync_target.get_sync_info(self.source._replica_uid)
- except errors.DatabaseDoesNotExist:
+ except (errors.DatabaseDoesNotExist, MissingDesignDocError) as e:
logger.debug("Database isn't ready on server. Will be created.")
+ logger.debug("Reason: %s", e.__class__)
self.target_replica_uid = None
target_gen, target_trans_id = 0, ''
target_my_gen, target_my_trans_id = 0, ''