diff --git a/src/main/java/org/caosdb/server/entity/Entity.java b/src/main/java/org/caosdb/server/entity/Entity.java
index 9c75e91d50e84bd06356c7f85eb1a1018232638b..dd80101f28ecc47aa099697dd6a6c8ffed1fb372 100644
--- a/src/main/java/org/caosdb/server/entity/Entity.java
+++ b/src/main/java/org/caosdb/server/entity/Entity.java
@@ -646,15 +646,7 @@ public abstract class Entity extends AbstractObservable implements EntityInterfa
 
     // Parse ID. Generate error if it isn't an integer.
     if (element.getAttribute("id") != null && !element.getAttributeValue("id").equals("")) {
-      try {
-        // check is integer compatible
-        Integer.parseInt(element.getAttributeValue("id"));
-        this.getId().setId(element.getAttributeValue("id"));
-      } catch (final NumberFormatException e) {
-        addInfo("Id was " + element.getAttributeValue("id") + ".");
-        addError(ServerMessages.PARSING_FAILED);
-        setEntityStatus(EntityStatus.UNQUALIFIED);
-      }
+      this.getId().setId(element.getAttributeValue("id"));
     }
 
     // Parse NAME.
diff --git a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
index 61724779d7d9ae466a5acc3eb8116a309db5a5f6..c8f56610f64deaadcddfbf10a1c0dfbdc43277b9 100644
--- a/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
+++ b/src/main/java/org/caosdb/server/grpc/EntityTransactionServiceImpl.java
@@ -135,19 +135,11 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa
       } else { // or ID retrieves.
         final String id = sub_request.getRetrieveRequest().getId();
         if (!id.isBlank()) {
-          /*
-          try {
-          */
           final RetrieveEntity entity = new RetrieveEntity(new EntityID(id));
           if (isFileDownload) {
             entity.setFlag("download_files", "true");
           }
           container.add(entity);
-          /*
-          } catch (final NumberFormatException e) {
-            // We handle this after the retrieval
-          }
-          */
         }
       }
     }
@@ -197,34 +189,9 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa
       }
     }
 
-    // Add those entities which have not been retrieved because they have a string id
-    /*for (final TransactionRequest sub_request : request.getRequestsList()) {
-      final String id = sub_request.getRetrieveRequest().getId();
-      if (!id.isBlank()) {
-        try {
-          grpcToCaosdb.getId(id);
-        } catch (final NumberFormatException e) {
-          // ID wasn't an integer - the server doesn't support string ids yet, so that entity
-          // cannot exist.
-          builder.addResponses(
-              TransactionResponse.newBuilder()
-                  .setRetrieveResponse(
-                      RetrieveResponse.newBuilder().setEntityResponse(entityDoesNotExist(id))));
-        }
-      }
-    }*/
     return builder.build();
   }
 
-  /*
-  private EntityResponse entityDoesNotExist(final String id) {
-    return EntityResponse.newBuilder()
-        .addErrors(caosdbToGrpc.convert(ServerMessages.ENTITY_DOES_NOT_EXIST))
-        .setEntity(Entity.newBuilder().setId(id))
-        .build();
-  }
-  */
-
   private String getSRID() {
     return UUID.randomUUID().toString();
   }
@@ -301,29 +268,16 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa
           final UpdateRequest updateRequest = subRequest.getUpdateRequest();
           final Entity updateEntity = updateRequest.getEntityRequest().getEntity();
 
-          try {
-            final UpdateEntity entity =
-                new UpdateEntity(
-                    new EntityID(updateEntity.getId()), // ID is not handled by grpc convert
-                    grpcToCaosdb.convert(updateEntity.getRole()));
-            grpcToCaosdb.convert(updateEntity, entity);
-            addFileUpload(container, entity, updateRequest.getEntityRequest());
-            container.add(entity);
-          } catch (final NumberFormatException e) {
-            // ID wasn't an integer
-            return failedWriteDueToStringId(requests);
-          }
+          final UpdateEntity entity =
+              new UpdateEntity(
+                  new EntityID(updateEntity.getId()), grpcToCaosdb.convert(updateEntity.getRole()));
+          grpcToCaosdb.convert(updateEntity, entity);
+          addFileUpload(container, entity, updateRequest.getEntityRequest());
+          container.add(entity);
           break;
         case DELETE_REQUEST:
           final DeleteRequest deleteRequest = subRequest.getDeleteRequest();
-          try {
-            final DeleteEntity entity = new DeleteEntity(new EntityID(deleteRequest.getId()));
-            container.add(entity);
-
-          } catch (final NumberFormatException e) {
-            // ID wasn't an integer
-            return failedWriteDueToStringId(requests);
-          }
+          container.add(new DeleteEntity(new EntityID(deleteRequest.getId())));
           break;
         default:
           throw new CaosDBException(
@@ -363,69 +317,6 @@ public class EntityTransactionServiceImpl extends EntityTransactionServiceImplBa
     return builder.build();
   }
 
-  /**
-   * Handle a request which contains string id (which cannot be converted to integer ids) and return
-   * a response which has the "ENTITY_DOES_NOT_EXIST" error for all entities with affected ids.
-   *
-   * <p>This does not attempt to execute a single request.
-   *
-   * @param request
-   * @return
-   */
-  private MultiTransactionResponse failedWriteDueToStringId(final MultiTransactionRequest request) {
-    final org.caosdb.api.entity.v1.MultiTransactionResponse.Builder builder =
-        MultiTransactionResponse.newBuilder();
-    for (final TransactionRequest subRequest : request.getRequestsList()) {
-      final IdResponse.Builder idResponse = IdResponse.newBuilder();
-      switch (subRequest.getWrappedRequestsCase()) {
-        case INSERT_REQUEST:
-          builder
-              .addResponsesBuilder()
-              .setInsertResponse(InsertResponse.newBuilder().setIdResponse(idResponse));
-
-          break;
-        case UPDATE_REQUEST:
-          final UpdateRequest updateRequest = subRequest.getUpdateRequest();
-          final Entity updateEntity = updateRequest.getEntityRequest().getEntity();
-
-          idResponse.setId(updateEntity.getId());
-          /*
-          try {
-            grpcToCaosdb.getId(updateEntity.getId());
-          } catch (final NumberFormatException e) {
-            // ID wasn't an integer
-            idResponse.addErrors(caosdbToGrpc.convert(ServerMessages.ENTITY_DOES_NOT_EXIST));
-          }
-          */
-          builder
-              .addResponsesBuilder()
-              .setUpdateResponse(UpdateResponse.newBuilder().setIdResponse(idResponse));
-          break;
-        case DELETE_REQUEST:
-          final DeleteRequest deleteRequest = subRequest.getDeleteRequest();
-          idResponse.setId(deleteRequest.getId());
-          /*
-          try {
-            grpcToCaosdb.getId(deleteRequest.getId());
-          } catch (final NumberFormatException e) {
-            // ID wasn't an integer
-            idResponse.addErrors(caosdbToGrpc.convert(ServerMessages.ENTITY_DOES_NOT_EXIST));
-          }
-          */
-          builder
-              .addResponsesBuilder()
-              .setDeleteResponse(DeleteResponse.newBuilder().setIdResponse(idResponse));
-          break;
-        default:
-          throw new CaosDBException(
-              "Cannot process a "
-                  + subRequest.getWrappedRequestsCase().name()
-                  + " in a write request.");
-      }
-    }
-    return builder.build();
-  }
-
   private void addFileUpload(
       final WritableContainer container,
       final EntityInterface entity,
diff --git a/src/main/java/org/caosdb/server/query/IDFilter.java b/src/main/java/org/caosdb/server/query/IDFilter.java
index ce01f5f242f914c6f6f812f0875332f7ca004c07..c00890344d9c9ff4c91532543ae8f44f2ebda571 100644
--- a/src/main/java/org/caosdb/server/query/IDFilter.java
+++ b/src/main/java/org/caosdb/server/query/IDFilter.java
@@ -37,19 +37,11 @@ public class IDFilter implements EntityFilterInterface {
   private final String operator;
   private final String value;
   private final String aggregate;
-  private final Integer vInt;
 
   public IDFilter(final String o, final String v, final String a) {
     this.operator = o;
     this.value = v;
     this.aggregate = a;
-    Integer i;
-    try {
-      i = Integer.valueOf(v);
-    } catch (final NumberFormatException e) {
-      i = null;
-    }
-    this.vInt = i;
   }
 
   @Override
@@ -79,7 +71,7 @@ public class IDFilter implements EntityFilterInterface {
       if (getValue() == null) {
         callIDFilter.setNull(4, INTEGER);
       } else {
-        callIDFilter.setInt(4, this.vInt);
+        callIDFilter.setString(4, this.getValue());
       }
 
       // aggregate
diff --git a/src/main/java/org/caosdb/server/query/POV.java b/src/main/java/org/caosdb/server/query/POV.java
index ebc35a16b1495accf8cd4a114dd688c2b2529c1b..af5b446f6024f62d04788036a80bb5cfa41b8b97 100644
--- a/src/main/java/org/caosdb/server/query/POV.java
+++ b/src/main/java/org/caosdb/server/query/POV.java
@@ -383,8 +383,8 @@ public class POV implements EntityFilterInterface {
         query.getConnection().prepareCall("call initPOVRefidsTable(?,?)")) {
       // stmt = this.connection.prepareCall("call initPOV(?,?,?,?,?)");
       // initPOVRefidsTable(in vInt INT, in vText VARCHAR(255))
-      if (this.vInt != null && this.vInt > 0) {
-        stmt.setInt(1, this.vInt);
+      if (this.value != null) {
+        stmt.setString(1, this.value);
       } else {
         stmt.setNull(1, Types.INTEGER);
       }