diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index ec59df9e692416d727529f3c320583be99f6b8f8..654021d8b7adee128797f8675d4499a295bbc8a3 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -54,4 +54,20 @@ TEST(test_transaction, DISABLED_retrieve_manufacturer_by_id) {
   EXPECT_EQ(version, entity.GetVersion());
 }
 
+TEST(test_transaction, retrieve_non_existing) {
+  const auto &connection =
+    caosdb::connection::ConnectionManager::GetDefaultConnection();
+
+  auto transaction(connection->CreateTransaction());
+
+  const auto *id = "non-existing-id";
+  transaction->RetrieveById(id);
+  transaction->ExecuteAsyncronously();
+
+  const auto &status = transaction->WaitForIt();
+  EXPECT_EQ(status, TransactionStatus::TRANSACTION_ERROR);
+
+  EXPECT_EQ(status.GetCode(), StatusCode::GENERIC_TRANSACTION_ERROR);
+}
+
 } // namespace caosdb::transaction