diff --git a/consumer/api/cpp/src/data_broker.cpp b/consumer/api/cpp/src/data_broker.cpp
index 7ab6f2c04d49b218a940654c2ab811970fa79b67..755713044fa969f020e16f7f1bfa1f96bc1c75c9 100644
--- a/consumer/api/cpp/src/data_broker.cpp
+++ b/consumer/api/cpp/src/data_broker.cpp
@@ -1,7 +1,7 @@
 #include <common/networking.h>
 #include "consumer/data_broker.h"
 #include "server_data_broker.h"
-
+#include "consumer//consumer_error.h"
 
 namespace asapo {
 
@@ -10,7 +10,7 @@ std::unique_ptr<DataBroker> Create(const std::string& source_name,
                                    Error* error,
                                    Args&& ... args) noexcept {
     if (source_name.empty()) {
-        error->reset(new SimpleError("Empty Data Source"));
+        *error = ConsumerErrorTemplates::kWrongInput.Generate("Empty Data Source");
         return nullptr;
     }
 
diff --git a/consumer/api/python/asapo_consumer.pyx.in b/consumer/api/python/asapo_consumer.pyx.in
index 67de7608c905b0403afb64eab15311a1d69cdf87..bb37ba89c003e343ee11be56dc9bff083a4ce3a4 100644
--- a/consumer/api/python/asapo_consumer.pyx.in
+++ b/consumer/api/python/asapo_consumer.pyx.in
@@ -335,11 +335,11 @@ cdef class __PyDataBrokerFactory:
         cdef unique_ptr[DataBroker] c_broker
         with nogil:
             c_broker = self.c_factory.CreateServerBroker(b_server_name,b_source_path,b_has_filesystem,source,&err)
+        if err:
+            throw_exception(err)
         broker = PyDataBroker()
         broker.c_broker =  c_broker.release()
         broker.c_broker.SetTimeout(timeout)
-        if err:
-            throw_exception(err)
         return broker
 
 def create_server_broker(server_name,source_path,has_filesystem,beamtime_id,stream,token,timeout_ms):
@@ -354,7 +354,7 @@ def create_server_broker(server_name,source_path,has_filesystem,beamtime_id,stre
       :rtype: Tuple with broker object and error.
 	"""
     factory = __PyDataBrokerFactory()
-    return factory.create_server_broker(_bytes(server_name),_bytes(source_path),has_filesystem, _bytes(beamtime_id),_bytes(stream),_bytes(token),timeout_ms)
+    return factory.create_server_broker(server_name,source_path,has_filesystem, beamtime_id,stream,token,timeout_ms)
 
 
 __version__ = "@PYTHON_ASAPO_VERSION@@ASAPO_VERSION_COMMIT@"
diff --git a/tests/automatic/consumer/consumer_api_python/consumer_api.py b/tests/automatic/consumer/consumer_api_python/consumer_api.py
index f830ac0313838eaf04935f33f9d212bc80c4f517..98f1d29f9fb39c1ebdb2600cf895c49c462225af 100644
--- a/tests/automatic/consumer/consumer_api_python/consumer_api.py
+++ b/tests/automatic/consumer/consumer_api_python/consumer_api.py
@@ -202,6 +202,15 @@ def check_single(broker, group_id):
     else:
         exit_on_noerr("AsapoBrokerServersNotFound")
 
+    try:
+        asapo_consumer.create_server_broker("", "", True, "", "", "", 1000)
+    except asapo_consumer.AsapoWrongInputError as err:
+        print(err)
+        pass
+    else:
+        exit_on_noerr("should be AsapoWrongInputError")
+
+
 
 def check_dataset(broker, group_id):
     res = broker.get_next_dataset(group_id)