diff --git a/CMakeLists.txt b/CMakeLists.txt
index 97830558c446a3e6718d68b8ba2cee7c033bd88d..1cdccf80e450d7da1abddba854572189bc583b15 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,7 +20,7 @@
 
 cmake_minimum_required(VERSION 3.13)
 
-set(libcaosdb_VERSION 0.0.17)
+set(libcaosdb_VERSION 0.0.19)
 set(libcaosdb_COMPATIBLE_SERVER_VERSION_MAJOR 0)
 set(libcaosdb_COMPATIBLE_SERVER_VERSION_MINOR 5)
 set(libcaosdb_COMPATIBLE_SERVER_VERSION_PATCH 0)
diff --git a/conanfile.py b/conanfile.py
index 7a712bbd99136c5054f7a8fedeee6fb5af5ce4f7..d29a0a6f091d85426327bd82a4282ca3b9d787de 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -3,7 +3,7 @@ from conans import ConanFile, CMake, tools
 
 class CaosdbConan(ConanFile):
     name = "caosdb"
-    version = "0.0.17"
+    version = "0.0.19"
     license = "AGPL-3.0-or-later"
     author = "Timm C. Fitschen <t.fitschen@indiscale.com>"
     url = "https://gitlab.indiscale.com/caosdb/src/caosdb-cpplib.git"
diff --git a/include/caosdb/protobuf_helper.h b/include/caosdb/protobuf_helper.h
index 9a73c0d726b25a792232530d0e01852d9c0b2e99..8574845b194f0080d2b0f1d07475c4bf1c3f82bd 100644
--- a/include/caosdb/protobuf_helper.h
+++ b/include/caosdb/protobuf_helper.h
@@ -52,7 +52,7 @@ public:
   /**
    * Return a json representation of this object.
    */
-  inline auto ToString() const noexcept -> const std::string {
+  [[nodiscard]] inline auto ToString() const noexcept -> const std::string {
     CAOSDB_DEBUG_MESSAGE_STRING(*wrapped, out)
     return out;
   }
diff --git a/include/caosdb/transaction.h b/include/caosdb/transaction.h
index 0699e14b28ae6e4b44ff495695c843ffa2e8d01f..153ee46f8173d98a13203f31cd6a140999a58689 100644
--- a/include/caosdb/transaction.h
+++ b/include/caosdb/transaction.h
@@ -93,7 +93,7 @@
   }                                                                                                \
   switch (this->transaction_type) {                                                                \
   case NONE:                                                                                       \
-    this->transaction_type = TransactionType::DELETE;                                              \
+    this->transaction_type = TransactionType::MIXED_WRITE;                                         \
   case DELETE:                                                                                     \
   case MIXED_WRITE:                                                                                \
   case MIXED_READ_AND_WRITE:                                                                       \
@@ -115,7 +115,7 @@
   }                                                                                                \
   switch (this->transaction_type) {                                                                \
   case NONE:                                                                                       \
-    this->transaction_type = TransactionType::INSERT;                                              \
+    this->transaction_type = TransactionType::MIXED_WRITE;                                         \
   case INSERT:                                                                                     \
   case MIXED_WRITE:                                                                                \
   case MIXED_READ_AND_WRITE:                                                                       \
@@ -137,8 +137,8 @@
   }                                                                                                \
   switch (this->transaction_type) {                                                                \
   case NONE:                                                                                       \
-    this->transaction_type = TransactionType::INSERT;                                              \
-  case INSERT:                                                                                     \
+    this->transaction_type = TransactionType::MIXED_WRITE;                                         \
+  case UPDATE:                                                                                     \
   case MIXED_WRITE:                                                                                \
   case MIXED_READ_AND_WRITE:                                                                       \
     break;                                                                                         \
diff --git a/include/caosdb/value.h b/include/caosdb/value.h
index b7da9903eece341955bb1d9a93e3e89d72f866eb..fd70c4f837dccaeedca0c9801c2518eb111af398 100644
--- a/include/caosdb/value.h
+++ b/include/caosdb/value.h
@@ -247,9 +247,8 @@ public:
     static const std::vector<ScalarValue> empty_collection;
     return empty_collection;
   }
-  inline auto ToString() const noexcept -> const std::string {
-    CAOSDB_DEBUG_MESSAGE_STRING(*wrapped, out)
-    return out;
+  [[nodiscard]] inline auto ToString() const noexcept -> const std::string {
+    return ProtoMessageWrapper::ToString();
   }
 
   friend class Value;
@@ -416,6 +415,10 @@ public:
     return *this;
   }
 
+  [[nodiscard]] inline auto ToString() const noexcept -> const std::string {
+    return ProtoMessageWrapper::ToString();
+  }
+
   friend class Entity;
   friend class Property;
 
diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp
index 551d90560498a2aee4b3ce169d416079e8cc80c0..678d6fbd728cdd82158e263a476f4ce63bc19310 100644
--- a/src/caosdb/transaction.cpp
+++ b/src/caosdb/transaction.cpp
@@ -158,7 +158,7 @@ auto Transaction::InsertEntity(Entity *entity) noexcept -> StatusCode {
     entity->SetFileTransmissionId(file_transmission_id);
     upload_files.push_back(entity->GetFileDescriptor());
   }
-  this->status = TransactionStatus::READY();
+  this->status = TransactionStatus::GO_ON();
   return this->status.GetCode();
 }
 
@@ -175,7 +175,7 @@ auto Transaction::UpdateEntity(Entity *entity) noexcept -> StatusCode {
     entity->SetFileTransmissionId(file_transmission_id);
     upload_files.push_back(entity->GetFileDescriptor());
   }
-  this->status = TransactionStatus::READY();
+  this->status = TransactionStatus::GO_ON();
   return this->status.GetCode();
 }
 
@@ -194,12 +194,6 @@ auto Transaction::ExecuteAsynchronously() noexcept -> StatusCode { // NOLINT
     return StatusCode::TRANSACTION_STATUS_ERROR;
   }
   switch (this->transaction_type) {
-  case MIXED_WRITE:
-    CAOSDB_LOG_ERROR_AND_RETURN_STATUS(
-      logger_name, StatusCode::UNSUPPORTED_FEATURE,
-      "MIXED_WRITE UNSUPPORTED: The current implementation does not support "
-      "mixed write transactions (containing insertions, deletions, and updates "
-      "in one transaction).")
   case MIXED_READ_AND_WRITE:
     CAOSDB_LOG_ERROR_AND_RETURN_STATUS(
       logger_name, StatusCode::UNSUPPORTED_FEATURE,
diff --git a/test/test_ccaosdb.cpp b/test/test_ccaosdb.cpp
index 361b0918060e46cf71b435e519b3a7ec20b1ee46..d5b894b8c37eb747b9e13739ced8b1643a6f59ed 100644
--- a/test/test_ccaosdb.cpp
+++ b/test/test_ccaosdb.cpp
@@ -984,8 +984,7 @@ TEST_F(test_ccaosdb, test_insert_update_delete) {
   caosdb_entity_entity_set_file_path(&entity, "some_name");
 
   auto return_code = caosdb_transaction_transaction_insert_entity(&insert_transaction, &entity);
-  // For now, nothing further can be done here, so it should be READY
-  EXPECT_EQ(return_code, caosdb::StatusCode::READY);
+  EXPECT_EQ(return_code, caosdb::StatusCode::GO_ON);
 
   caosdb_transaction_transaction update_transaction;
   caosdb_connection_connection_create_transaction(&connection, &update_transaction);