diff --git a/include/caosdb/status_code.h b/include/caosdb/status_code.h
index 573b126fa94435c4669ace37ea00cbdbbbde6545..5689b9ebeab94d01272ce049d3cb0e3f16d13665 100644
--- a/include/caosdb/status_code.h
+++ b/include/caosdb/status_code.h
@@ -61,6 +61,7 @@ enum StatusCode {
   FILE_DOES_NOT_EXIST_LOCALLY = 34,
   FILE_UPLOAD_ERROR = 35,
   FILE_DOWNLOAD_ERROR = 36,
+  ENUM_MAPPING_ERROR = 37,
   OTHER_CLIENT_ERROR = 9999,
 };
 
diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp
index ac64e26609b99e3047fc16f36825aec03ab038af..ae80cc7f893840f9381ffba4e12f7584d2c5770e 100644
--- a/src/caosdb/transaction.cpp
+++ b/src/caosdb/transaction.cpp
@@ -102,6 +102,8 @@ auto get_status_description(int code) -> const std::string & {
     {StatusCode::EXTERN_C_ASSIGNMENT_ERROR,
      "You tried to assign a new object to the wrapped void pointer. You have "
      "to delete the old pointee first."},
+    {StatusCode::ENUM_MAPPING_ERROR,
+     "The role, importance, or datatype you specified does not exist."},
     {StatusCode::OTHER_CLIENT_ERROR,
      "This is code is reserved to errors raised by other clients wrapping the "
      "C++ client (or its Extern C interface).  This should never occur when "