diff --git a/integrationtests/test_issues.py b/integrationtests/test_issues.py
index 76392f3a4ce20d7ed6b6ccc30c79f1ce400001f7..ea5af8eadda714f82cc9de216527ca42d02bf617 100644
--- a/integrationtests/test_issues.py
+++ b/integrationtests/test_issues.py
@@ -28,6 +28,8 @@ from linkahead.cached import cache_clear
 from linkahead.utils.register_tests import clear_database, set_test_key
 from pytest import fixture, mark, raises
 
+import tempfile
+
 set_test_key("10b128cf8a1372f30aa3697466bb55e76974e0c16a599bb44ace88f19c8f61e2")
 
 
@@ -328,3 +330,35 @@ def test_indiscale_87(clear_database):
         print(db.apiutils.compare_entities(rec, retrieved))
         assert db.apiutils.empty_diff(rec, retrieved)
         print("---")
+
+
+def test_issue_existing_file_id(clear_database):
+    """
+    Issue title: Synchronization with IDs fails
+
+    https://gitlab.indiscale.com/caosdb/src/caosdb-crawler/-/issues/174
+    """
+
+    rt1 = db.RecordType(name="RT1")
+    rt2 = db.RecordType(name="RT2").insert()
+    rt1.add_property(rt2, importance=db.OBLIGATORY)
+    rt1.insert()
+
+    r = db.Record()
+    r.add_parent(rt1)
+    with tempfile.NamedTemporaryFile() as tmpf:
+        f = db.File(name="test_parent", path="parent_test/file.txt", file=tmpf.name)
+        f.insert()
+
+        f2 = db.File(name="test_parent", path="parent_test/file.txt", file=tmpf.name)
+        f2.id = f.id
+
+    f2.add_parent(rt2)
+    r.add_property(name="RT2", value=f2)
+
+    ident = CaosDBIdentifiableAdapter()
+    ident.register_identifiable("RT1", db.RecordType().add_parent(
+        name="RT1").add_property(name="RT2"))
+    crawler = Crawler(identifiableAdapter=ident)
+    crawler.synchronize(crawled_data=[f2, r])
+