diff --git a/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json b/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json
index 64df90e55eff065b1cc249a634444a72f9fd00d2..9b81cc094bf7d1c35154d8f092a96d5f5fae35c9 100644
--- a/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json
+++ b/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json
@@ -1,5 +1,5 @@
 {
-        "title": "Random numbers created on a random autumn day in a random office",
+        "title": "Random numbers created on a random autumn day in a random person's office",
         "abstract": "For demonstration purposes we created random numbers on a computer in an office of the CLOUD. This demonstration dataset is used in the DataCloud, a curated cloud storage for scientific data.",
         "Event": [
             {
diff --git a/integrationtests/test_realworld_example.py b/integrationtests/test_realworld_example.py
index 19a9aca2eaabce59b9570ade9ad7bae6eb43f9b9..da3fb69ce635ae69cd33cbf01de9df8ebf019661 100644
--- a/integrationtests/test_realworld_example.py
+++ b/integrationtests/test_realworld_example.py
@@ -124,7 +124,7 @@ def test_dataset(clear_database, usemodel):
                      " given_name='Max'", unique=True)
 
     dataset = db.execute_query(f"FIND RECORD Dataset with Dataspace={dataspace.id} AND title="
-                               "'Random numbers created on a random autumn day in a random office'"
+                               "'Random numbers created on a random autumn day in a random person\\'s office'"
                                "", unique=True)
     assert db.execute_query(f"COUNT RECORD with id={dataset.id} AND WHICH REFERENCES Person WITH full_name="
                             "'Alexa Nozone' AND WHICH REFERENCES Person WITH full_name='Max Schmitt'"
diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py
index 0b00cbeaefe42bcf600db735d27c67571ca6a79b..d4c2b1d04316946dc28fec15489e0dc390cb9dd3 100644
--- a/src/caoscrawler/identifiable_adapters.py
+++ b/src/caoscrawler/identifiable_adapters.py
@@ -52,8 +52,11 @@ def convert_value(value):
         return str(value.id)
     elif isinstance(value, datetime):
         return value.isoformat()
+    elif type(value) == str:
+        # replace single quotes, otherwise they may break the queries
+        return value.replace("\'", "\\'")
     else:
-        return str(value)
+        return f"{value}"
 
 
 class IdentifiableAdapter(metaclass=ABCMeta):
@@ -387,7 +390,8 @@ class LocalStorageIdentifiableAdapter(IdentifiableAdapter):
             if self.check_record(record, identifiable):
                 candidates.append(record)
         if len(candidates) > 1:
-            raise RuntimeError("Identifiable was not defined unambigiously.")
+            raise RuntimeError(
+                f"Identifiable was not defined unambigiously. Possible candidates are {candidates}")
         if len(candidates) == 0:
             return None
         return candidates[0]
@@ -469,7 +473,8 @@ class CaosDBIdentifiableAdapter(IdentifiableAdapter):
         query_string = self.create_query_for_identifiable(identifiable)
         candidates = db.execute_query(query_string)
         if len(candidates) > 1:
-            raise RuntimeError("Identifiable was not defined unambigiously.")
+            raise RuntimeError(
+                f"Identifiable was not defined unambigiously.\n{query_string}\nReturned the following {candidates}.")
         if len(candidates) == 0:
             return None
         return candidates[0]