diff --git a/src/leap/soledad/client/_db/blobs/sql.py b/src/leap/soledad/client/_db/blobs/sql.py
index c9a025a2ff6865fae98be20ccf50517440fe6b9d..c5b0b64ba6506a80f1e2e14e522f161debc8279b 100644
--- a/src/leap/soledad/client/_db/blobs/sql.py
+++ b/src/leap/soledad/client/_db/blobs/sql.py
@@ -156,9 +156,11 @@ class SQLiteBlobBackend(object):
 
     def update_batch_sync_status(self, blob_id_list, sync_status,
                                  namespace=''):
-        insert = 'INSERT INTO sync_state (blob_id, namespace, sync_status)'
+        if not blob_id_list:
+            return
+        insert = 'INSERT or REPLACE INTO sync_state'
         first_blob_id, blob_id_list = blob_id_list[0], blob_id_list[1:]
-        insert += ' VALUES (?, ?, ?)'
+        insert += ' (blob_id, namespace, sync_status) VALUES (?, ?, ?)'
         values = (first_blob_id, namespace, sync_status)
         for blob_id in blob_id_list:
             insert += ', (?, ?, ?)'
diff --git a/src/leap/soledad/client/_db/blobs/sync.py b/src/leap/soledad/client/_db/blobs/sync.py
index 838b87e52e27b383bd41923ff4ab716827e333b4..bfdc5fbeee123ca8c0843a7873adf108892b34c4 100644
--- a/src/leap/soledad/client/_db/blobs/sync.py
+++ b/src/leap/soledad/client/_db/blobs/sync.py
@@ -62,10 +62,15 @@ class BlobsSynchronizer(object):
         d2 = self.local_list(namespace=namespace)
         remote_list, local_list = yield defer.gatherResults([d1, d2])
         pending_download_ids = tuple(set(remote_list) - set(local_list))
+        pending_upload_ids = tuple(set(local_list) - set(remote_list))
         yield self.local.update_batch_sync_status(
             pending_download_ids,
             SyncStatus.PENDING_DOWNLOAD,
             namespace=namespace)
+        yield self.local.update_batch_sync_status(
+            pending_upload_ids,
+            SyncStatus.PENDING_UPLOAD,
+            namespace=namespace)
 
     @defer.inlineCallbacks
     def send_missing(self, namespace=''):