diff --git a/common/src/leap/soledad/common/couch/__init__.py b/common/src/leap/soledad/common/couch/__init__.py
index 4d0a80b6686040ee3f5d2bc9cccedc53985086fd..3702fb97be3141c70c886fed2c024c9fb7d27c15 100644
--- a/common/src/leap/soledad/common/couch/__init__.py
+++ b/common/src/leap/soledad/common/couch/__init__.py
@@ -53,6 +53,7 @@ from leap.soledad.common.backend import SoledadBackend
 
 
 COUCH_TIMEOUT = 120  # timeout for transfers between Soledad server and Couch
+VERIFY_SCHEMA_VERSION = True  # allow bypassing verification (for tests)
 
 
 def list_users_dbs(couch_url):
diff --git a/common/src/leap/soledad/common/couch/state.py b/common/src/leap/soledad/common/couch/state.py
index 66dd0ca456250d7c92d64cf2339b25b89dd9a17f..33d54560e76f3c725a338c689ba3b5821201e0ce 100644
--- a/common/src/leap/soledad/common/couch/state.py
+++ b/common/src/leap/soledad/common/couch/state.py
@@ -62,7 +62,7 @@ class CouchServerState(ServerState):
     TOKENS_TYPE_DEF = "Token"
     TOKENS_USER_ID_KEY = "user_id"
 
-    def __init__(self, couch_url, create_cmd=None):
+    def __init__(self, couch_url, create_cmd=None, verify_schema_version=True):
         """
         Initialize the couch server state.
 
@@ -71,7 +71,11 @@ class CouchServerState(ServerState):
         """
         self.couch_url = couch_url
         self.create_cmd = create_cmd
-        current_version = get_couch_schema_version(couch_url)
+        if verify_schema_version:
+            self._verify_schema_version()
+
+    def _verify_schema_version(self):
+        current_version = get_couch_schema_version(self.couch_url)
         if current_version != SCHEMA_VERSION:
             raise WrongCouchSchemaVersionError(
                 expected_version=SCHEMA_VERSION,
diff --git a/server/src/leap/soledad/server/__init__.py b/server/src/leap/soledad/server/__init__.py
index c5dcdc88072e623f48a958a403c19b4410280b50..7028477182720d218240551b770f04e40245516f 100644
--- a/server/src/leap/soledad/server/__init__.py
+++ b/server/src/leap/soledad/server/__init__.py
@@ -98,6 +98,7 @@ from leap.soledad.server.sync import (
 from leap.soledad.common import SHARED_DB_NAME
 from leap.soledad.common.backend import SoledadBackend
 from leap.soledad.common.couch import WrongCouchSchemaVersionError
+from leap.soledad.common.couch import VERIFY_SCHEMA_VERSION
 from leap.soledad.common.couch.state import CouchServerState
 
 from ._version import get_versions
@@ -315,11 +316,12 @@ def _load_config():
     return conf['soledad-server']
 
 
-def _get_couch_state():
+def _get_couch_state(verify_schema_version=True):
     conf = _load_config()
     try:
         state = CouchServerState(
-            conf['couch_url'], create_cmd=conf['create_cmd'])
+            conf['couch_url'], create_cmd=conf['create_cmd'],
+            verify_schema_version=verify_schema_version)
         SoledadBackend.BATCH_SUPPORT = conf.get('batching', False)
         return state
     except WrongCouchSchemaVersionError as e:
@@ -329,7 +331,7 @@ def _get_couch_state():
         exit(1)
 
 
-_couch_state = _get_couch_state()
+_couch_state = _get_couch_state(verify_schema_version=VERIFY_SCHEMA_VERSION)
 
 # a WSGI application that may be used by `twistd -web`
 application = GzipMiddleware(
diff --git a/testing/test_soledad/util.py b/testing/test_soledad/util.py
index e23d185ebc9a713f7f7bfa0cf369ef397204f501..53fcb4736c810a083c74ab7240802b51ead95dea 100644
--- a/testing/test_soledad/util.py
+++ b/testing/test_soledad/util.py
@@ -381,7 +381,8 @@ class CouchServerStateForTests(CouchServerState):
 
     def __init__(self, *args, **kwargs):
         self.dbs = []
-        super(CouchServerStateForTests, self).__init__(*args, **kwargs)
+        super(CouchServerStateForTests, self).__init__(
+            *args, verify_schema_version=False, **kwargs)
 
     def _create_database(self, replica_uid=None, dbname=None):
         """
diff --git a/testing/tests/client/test_app.py b/testing/tests/client/test_app.py
index fef2f371e53cbdb3729f65d7451c0df8e64fb41b..6035dfe34e32c2e4af06f967042019e90fdd6925 100644
--- a/testing/tests/client/test_app.py
+++ b/testing/tests/client/test_app.py
@@ -19,6 +19,11 @@ Test ObjectStore and Couch backend bits.
 """
 from testscenarios import TestWithScenarios
 
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
+from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
+
 from test_soledad.util import BaseSoledadTest
 from test_soledad.util import make_soledad_document_for_test
 from test_soledad.util import make_token_soledad_app
diff --git a/testing/tests/couch/test_atomicity.py b/testing/tests/couch/test_atomicity.py
index 3badfb1995c701935ea0e1c308a5ee6144055424..120136e4f5461eb8d651d5f3b31f15a4173aa7f4 100644
--- a/testing/tests/couch/test_atomicity.py
+++ b/testing/tests/couch/test_atomicity.py
@@ -26,6 +26,12 @@ from twisted.internet import defer
 from uuid import uuid4
 
 from leap.soledad.client import Soledad
+
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
+from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
+
 from leap.soledad.common.couch.state import CouchServerState
 from leap.soledad.common.couch import CouchDatabase
 
@@ -80,7 +86,8 @@ class CouchAtomicityTestCase(CouchDBTestCase, TestCaseWithServer):
         return soledad
 
     def make_app(self):
-        self.request_state = CouchServerState(self.couch_url)
+        self.request_state = CouchServerState(
+            self.couch_url, verify_schema_version=False)
         return self.make_app_after_state(self.request_state)
 
     def setUp(self):
diff --git a/testing/tests/couch/test_command.py b/testing/tests/couch/test_command.py
index f61e118d3c0aed25d6bb1011bb2aaf7c1ad745a7..34cf315c7e9ec07e57d04015949f134510eab007 100644
--- a/testing/tests/couch/test_command.py
+++ b/testing/tests/couch/test_command.py
@@ -1,6 +1,11 @@
 from twisted.trial import unittest
 
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
 from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
+
+from leap.soledad.common.couch.state import CouchServerState
 from leap.soledad.common.l2db import errors as u1db_errors
 
 from mock import Mock
@@ -9,7 +14,8 @@ from mock import Mock
 class CommandBasedDBCreationTest(unittest.TestCase):
 
     def test_ensure_db_using_custom_command(self):
-        state = couch.state.CouchServerState("url", create_cmd="echo")
+        state = CouchServerState(
+            "url", create_cmd="echo", verify_schema_version=False)
         mock_db = Mock()
         mock_db.replica_uid = 'replica_uid'
         state.open_database = Mock(return_value=mock_db)
@@ -18,11 +24,13 @@ class CommandBasedDBCreationTest(unittest.TestCase):
         self.assertEquals(mock_db.replica_uid, replica_uid)
 
     def test_raises_unauthorized_on_failure(self):
-        state = couch.state.CouchServerState("url", create_cmd="inexistent")
+        state = CouchServerState(
+            "url", create_cmd="inexistent", verify_schema_version=False)
         self.assertRaises(u1db_errors.Unauthorized,
                           state.ensure_database, "user-1337")
 
     def test_raises_unauthorized_by_default(self):
-        state = couch.state.CouchServerState("url")
+        state = couch.state.CouchServerState(
+            "url", verify_schema_version=False)
         self.assertRaises(u1db_errors.Unauthorized,
                           state.ensure_database, "user-1337")
diff --git a/testing/tests/server/test_server.py b/testing/tests/server/test_server.py
index 49d25ed0999195cc7751d291a1d7b973f41bc766..74e8d1efde4c81bbb41386c5f9a6f027fa90b255 100644
--- a/testing/tests/server/test_server.py
+++ b/testing/tests/server/test_server.py
@@ -30,6 +30,11 @@ from uuid import uuid4
 from twisted.internet import defer
 from twisted.trial import unittest
 
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
+from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
+
 from leap.soledad.common.couch.state import CouchServerState
 from leap.soledad.common.couch import CouchDatabase
 from test_soledad.u1db_tests import TestCaseWithServer
@@ -54,7 +59,8 @@ class ServerAuthenticationMiddlewareTestCase(CouchDBTestCase):
     def setUp(self):
         super(ServerAuthenticationMiddlewareTestCase, self).setUp()
         app = mock.Mock()
-        self._state = CouchServerState(self.couch_url)
+        self._state = CouchServerState(
+            self.couch_url, verify_schema_version=False)
         app.state = self._state
         self.auth_middleware = SoledadTokenAuthMiddleware(app)
         self._authorize('valid-uuid', 'valid-token')
@@ -345,7 +351,8 @@ class EncryptedSyncTestCase(
             shared_db=self.get_default_shared_mock(_put_doc_side_effect))
 
     def make_app(self):
-        self.request_state = CouchServerState(self.couch_url)
+        self.request_state = CouchServerState(
+            self.couch_url, verify_schema_version=False)
         return self.make_app_with_state(self.request_state)
 
     def setUp(self):
diff --git a/testing/tests/sync/test_encdecpool.py b/testing/tests/sync/test_encdecpool.py
index 4a32885eeaaed8d69bfacfddcd53085d1d8ef76d..97e50400fcab6e917860a9969258bef686a43292 100644
--- a/testing/tests/sync/test_encdecpool.py
+++ b/testing/tests/sync/test_encdecpool.py
@@ -26,6 +26,11 @@ from twisted.internet.defer import inlineCallbacks
 from leap.soledad.client.encdecpool import SyncEncrypterPool
 from leap.soledad.client.encdecpool import SyncDecrypterPool
 
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
+from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
+
 from leap.soledad.common.document import SoledadDocument
 from test_soledad.util import BaseSoledadTest
 from twisted.internet import defer
diff --git a/testing/tests/sync/test_sync.py b/testing/tests/sync/test_sync.py
index 5540b7cb119bbe2c9f0d2564671b525ba4f9bceb..5092478e93ad51e713ed9031d6b1f879e3a5759d 100644
--- a/testing/tests/sync/test_sync.py
+++ b/testing/tests/sync/test_sync.py
@@ -24,7 +24,11 @@ from twisted.internet import defer
 
 from testscenarios import TestWithScenarios
 
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
 from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
+
 from leap.soledad.client import sync
 
 from test_soledad import u1db_tests as tests
diff --git a/testing/tests/sync/test_sync_mutex.py b/testing/tests/sync/test_sync_mutex.py
index 261c6485725686a66202c50f1e9c6c102444bf56..154859f635de2f2ebc7ebe865f79e1bccf2be667 100644
--- a/testing/tests/sync/test_sync_mutex.py
+++ b/testing/tests/sync/test_sync_mutex.py
@@ -33,8 +33,12 @@ from twisted.internet import defer
 
 from leap.soledad.client.sync import SoledadSynchronizer
 
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
+from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
+
 from leap.soledad.common.couch.state import CouchServerState
-from leap.soledad.common.couch import CouchDatabase
 from test_soledad.u1db_tests import TestCaseWithServer
 
 from test_soledad.util import CouchDBTestCase
@@ -85,7 +89,8 @@ class TestSyncMutex(
     sync_target = soledad_sync_target
 
     def make_app(self):
-        self.request_state = CouchServerState(self.couch_url)
+        self.request_state = CouchServerState(
+            self.couch_url, verify_schema_version=False)
         return self.make_app_with_state(self.request_state)
 
     def setUp(self):
@@ -103,7 +108,7 @@ class TestSyncMutex(
         self.startServer()
 
         # ensure remote db exists before syncing
-        db = CouchDatabase.open_database(
+        db = couch.CouchDatabase.open_database(
             urljoin(self.couch_url, 'user-' + self.user),
             create=True)
 
diff --git a/testing/tests/sync/test_sync_target.py b/testing/tests/sync/test_sync_target.py
index 964468cecde14a2efb693a85e6d9347f2f4752bc..9a1ccd30b0f03e3201f8be11851e09ba6e495d97 100644
--- a/testing/tests/sync/test_sync_target.py
+++ b/testing/tests/sync/test_sync_target.py
@@ -36,6 +36,10 @@ from leap.soledad.client.sqlcipher import SQLCipherOptions
 from leap.soledad.client.sqlcipher import SQLCipherDatabase
 
 from leap.soledad.common import l2db
+# monkeypatch couch backend to avoid verifying the schema version, otherwise
+# tests fail because of lack of soledad config database
+from leap.soledad.common import couch
+couch.VERIFY_SCHEMA_VERSION = False
 
 from leap.soledad.common.document import SoledadDocument
 from test_soledad import u1db_tests as tests