diff --git a/include/caosdb/exceptions.h b/include/caosdb/exceptions.h
index 304216679200329660c5068362fa9e089f089235..415d0722580e1199f014358f524caf75f9d68b32 100644
--- a/include/caosdb/exceptions.h
+++ b/include/caosdb/exceptions.h
@@ -101,12 +101,12 @@ public:
 };
 
 /**
- * @brief The connection isn't known to the ConnectionManager under this name.
+ * @brief Exception for errors during the configuration of the connection.
  */
-class UnknownConnectionError : public Exception {
+class ConnectionConfigurationError : public Exception {
 public:
-  explicit UnknownConnectionError(const std::string &what_arg)
-    : Exception(StatusCode::UNKNOWN_CONNECTION_ERROR, what_arg) {}
+  explicit ConnectionConfigurationError(const std::string &what_arg)
+    : Exception(StatusCode::CONNECTION_CONFIGURATION_ERROR, what_arg) {}
 };
 
 } // namespace caosdb::exceptions
diff --git a/include/caosdb/status_code.h b/include/caosdb/status_code.h
index e458b1727af51720451cbc057d4e40cee35a4a4e..e1a382191b5bd4559c554e2fc3e084103c27c3cc 100644
--- a/include/caosdb/status_code.h
+++ b/include/caosdb/status_code.h
@@ -62,7 +62,7 @@ enum StatusCode {
   GENERIC_ERROR = 21,
   GENERIC_TRANSACTION_ERROR = 22,
   CONFIGURATION_ERROR = 23,
-  UNKNOWN_CONNECTION_ERROR = 24,
+  CONNECTION_CONFIGURATION_ERROR = 24,
   TRANSACTION_STATUS_ERROR = 25,
   TRANSACTION_TYPE_ERROR = 26,
   UNSUPPORTED_FEATURE = 27,
diff --git a/src/caosdb/connection.cpp b/src/caosdb/connection.cpp
index d6782f8ffa42238888998bdff65dc666fbf55c18..d1b80d068554b8796ccfa1dfa1368070f52281bd 100644
--- a/src/caosdb/connection.cpp
+++ b/src/caosdb/connection.cpp
@@ -109,8 +109,8 @@ auto ConnectionManager::mGetConnection(const std::string &name) const
       auto connection = ConfigurationManager::GetConnectionConfiguration(name);
       connections[name] = std::make_shared<Connection>(*connection.release());
     } catch (const caosdb::exceptions::ConfigurationError &exc) {
-      throw caosdb::exceptions::UnknownConnectionError("No connection named '" + name +
-                                                       "' present.");
+      throw caosdb::exceptions::ConnectionConfigurationError("Error with the connection named '" +
+                                                             name + "': " + exc.what());
     }
   }
   return this->connections.at(name);
diff --git a/src/caosdb/status_code_description.cpp b/src/caosdb/status_code_description.cpp
index d5e08e7820ca0f7380723087570f838465a9c261..5823943cfd7f79416cabb61662f778bac5de9bf8 100644
--- a/src/caosdb/status_code_description.cpp
+++ b/src/caosdb/status_code_description.cpp
@@ -131,8 +131,9 @@ auto get_status_description(int code) -> const std::string & {
      "The transaction terminated unsuccessfully with transaction errors."},
     {StatusCode::CONFIGURATION_ERROR,
      "An error occurred during the configuration of the ConfigurationManager."},
-    {StatusCode::UNKNOWN_CONNECTION_ERROR,
-     "The ConnectionManager does not know any connection of this name."},
+    {StatusCode::CONNECTION_CONFIGURATION_ERROR,
+     "Wither there is no connection of the given name or the given connection has a faulty "
+     "configuration"},
     {StatusCode::TRANSACTION_STATUS_ERROR,
      "The Transaction is in a wrong state for the attempted action."},
     {StatusCode::TRANSACTION_TYPE_ERROR,
diff --git a/test/test_connection.cpp b/test/test_connection.cpp
index 99391536edf031fbe4a326f56e24f68e5a50b5d3..4a5260e10964bc652c4ac803bf376b6b6cf39ead 100644
--- a/test/test_connection.cpp
+++ b/test/test_connection.cpp
@@ -22,7 +22,7 @@
 #include "caosdb/certificate_provider.h" // for PemCertificateProvider
 #include "caosdb/configuration.h"        // for InsecureConnectionConfigura...
 #include "caosdb/connection.h"           // for ConnectionManager
-#include "caosdb/exceptions.h"           // for UnknownConnectionError
+#include "caosdb/exceptions.h"           // for ConnectionConfigurationError
 #include "caosdb_test_utility.h"         // for EXPECT_THROW_MESSAGE, TEST_...
 #include <gtest/gtest-message.h>         // for Message
 #include <gtest/gtest-test-part.h>       // for SuiteApiResolver, TestPartR...
@@ -65,9 +65,16 @@ TEST_F(test_connection, configure_ssl_localhost_8080) {
 }
 
 TEST_F(test_connection, connection_manager_unknown_connection) {
-  EXPECT_THROW_MESSAGE(ConnectionManager::GetConnection("test"),
-                       caosdb::exceptions::UnknownConnectionError,
-                       "No connection named 'test' present.");
+  EXPECT_THROW_MESSAGE(
+    ConnectionManager::GetConnection("test"), caosdb::exceptions::ConnectionConfigurationError,
+    "Error with the connection named 'test': The connection 'test' has not been defined.");
+}
+
+TEST_F(test_connection, connection_missing_certificate) {
+  EXPECT_THROW_MESSAGE(ConnectionManager::GetConnection("missing"),
+                       caosdb::exceptions::ConnectionConfigurationError,
+                       std::string("Error with the connection named 'missing': ") +
+                         "File does not exist (server_certificate_path): /missing");
 }
 
 TEST_F(test_connection, connection_manager_get_default_connection) {
diff --git a/test/test_data/test_caosdb_client.json b/test/test_data/test_caosdb_client.json
index 2007413021b332c3bd32686363e241804a8d62ab..276c542f75353090b28918ab0ef9b33f9f0815e1 100644
--- a/test/test_data/test_caosdb_client.json
+++ b/test/test_data/test_caosdb_client.json
@@ -13,6 +13,16 @@
     "local-caosdb": {
       "host": "localhost",
       "port": 8443,
+      "authentication": {
+        "type": "plain",
+        "username": "me",
+          "password": "secret!"
+      }
+    },
+    "missing": {
+      "host": "localhost",
+      "port": 8443,
+      "server_certificate_path": "/missing",
       "authentication": {
         "type": "plain",
         "username": "me",