diff --git a/controller/nucleus/databaseDeviceStore.go b/controller/nucleus/databaseDeviceStore.go
index 530bbec1e615698430d54e73aeca00291c2b96ec..4aea432e79cbda0130a3a3321771adf88c830a65 100644
--- a/controller/nucleus/databaseDeviceStore.go
+++ b/controller/nucleus/databaseDeviceStore.go
@@ -2,6 +2,7 @@ package nucleus
 
 import (
 	"fmt"
+	"reflect"
 
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/device"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
@@ -65,7 +66,7 @@ func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (device.LoadedDevice
 	err := result.Decode(&loadedDevice)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedDevice, errors.ErrCouldNotMarshall{StoreName: s.storeName}
+		return loadedDevice, errors.ErrCouldNotMarshall{Object: idOfDevice, Type: reflect.TypeOf(loadedDevice), Err: err}
 	}
 
 	return loadedDevice, nil
@@ -88,7 +89,7 @@ func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (device.LoadedDevic
 	err := result.Decode(&loadedDevice)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedDevice, errors.ErrCouldNotMarshall{StoreName: s.storeName}
+		return loadedDevice, errors.ErrCouldNotMarshall{Object: nameOfDevice, Type: reflect.TypeOf(loadedDevice), Err: err}
 	}
 
 	return loadedDevice, nil
@@ -114,7 +115,7 @@ func (s *DatabaseDeviceStore) GetAll() ([]device.LoadedDevice, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName}
+		return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedDevices), Err: err}
 	}
 
 	return loadedDevices, nil
diff --git a/controller/nucleus/databasePndStore.go b/controller/nucleus/databasePndStore.go
index f39ef113893bb3b75ee52a517a6a3d05ab9fcc51..a1eb29323e1105d7033ea929199dbf5d5a21adfc 100644
--- a/controller/nucleus/databasePndStore.go
+++ b/controller/nucleus/databasePndStore.go
@@ -1,6 +1,8 @@
 package nucleus
 
 import (
+	"reflect"
+
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/device"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain"
 
@@ -44,7 +46,7 @@ func (s *DatabasePndStore) Get(query store.Query) (networkdomain.NetworkDomain,
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName}
+		return nil, errors.ErrCouldNotMarshall{Object: query.ID, Type: reflect.TypeOf(loadedPND), Err: err}
 	}
 
 	csbiClient, err := s.getCsbiClient()
@@ -87,7 +89,7 @@ func (s *DatabasePndStore) GetAll() ([]networkdomain.NetworkDomain, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{StoreName: pndStoreName}
+		return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedPnds), Err: err}
 	}
 
 	csbiClient, err := s.getCsbiClient()
diff --git a/controller/nucleus/databaseSbiStore.go b/controller/nucleus/databaseSbiStore.go
index 43a1bca99887df3407eaccbeb23b88e14be5076d..cadd719817c15f5fd3c67ae97f59f3ab81f8a071 100644
--- a/controller/nucleus/databaseSbiStore.go
+++ b/controller/nucleus/databaseSbiStore.go
@@ -1,6 +1,8 @@
 package nucleus
 
 import (
+	"reflect"
+
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors"
@@ -75,7 +77,7 @@ func (s *DatabaseSbiStore) Get(query store.Query) (southbound.LoadedSbi, error)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return loadedSbi, errors.ErrCouldNotMarshall{StoreName: sbiStoreName}
+		return loadedSbi, errors.ErrCouldNotMarshall{Object: query.ID, Type: reflect.TypeOf(loadedSbi), Err: err}
 	}
 
 	return loadedSbi, nil
@@ -101,7 +103,7 @@ func (s *DatabaseSbiStore) GetAll() ([]southbound.LoadedSbi, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{StoreName: sbiStoreName}
+		return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedSbis), Err: err}
 	}
 
 	return loadedSbis, nil
diff --git a/controller/nucleus/errors/errors.go b/controller/nucleus/errors/errors.go
index eac05eb448f53a654dd3acede79c215a70b4932f..43cf54e9a003178bdd2cbbbeccb99e5bb2f7e6b0 100644
--- a/controller/nucleus/errors/errors.go
+++ b/controller/nucleus/errors/errors.go
@@ -162,11 +162,13 @@ func (e ErrTypeNotSupported) Error() string {
 // ErrCouldNotMarshall implements Error interface and is called if a
 // database respone can not be parsed.
 type ErrCouldNotMarshall struct {
-	StoreName string
+	Object any
+	Type   any
+	Err    error
 }
 
 func (e ErrCouldNotMarshall) Error() string {
-	return fmt.Sprintf("could not marshall %s", e.StoreName)
+	return fmt.Sprintf("could not marshall Object: %v of Type: %v, Internal error: %v", e.Object, e.Type, e.Err)
 }
 
 // ErrCouldNotUpdate implements the Error interface and is called if a
diff --git a/controller/rbac/databaseRoleStore.go b/controller/rbac/databaseRoleStore.go
index b97da6d9a59dc1f4c91f5ab409c4b3901693d267..8d1ac67a78414f5bd324354572cd8e93dd437767 100644
--- a/controller/rbac/databaseRoleStore.go
+++ b/controller/rbac/databaseRoleStore.go
@@ -1,6 +1,8 @@
 package rbac
 
 import (
+	"reflect"
+
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors"
@@ -93,7 +95,7 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (rbac.LoadedRole, error)
 	err := result.Decode(&loadedRole)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedRole, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName}
+		return loadedRole, errors.ErrCouldNotMarshall{Object: idOfRole, Type: reflect.TypeOf(loadedRole), Err: err}
 	}
 
 	return loadedRole, nil
@@ -116,7 +118,7 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (rbac.LoadedRole, error
 	err := result.Decode(&loadedRole)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedRole, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName}
+		return loadedRole, errors.ErrCouldNotMarshall{Object: nameOfRole, Type: reflect.TypeOf(loadedRole), Err: err}
 	}
 
 	return loadedRole, nil
@@ -142,7 +144,7 @@ func (s *DatabaseRoleStore) GetAll() ([]rbac.LoadedRole, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{StoreName: s.roleStoreName}
+		return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedRoles), Err: err}
 	}
 	return loadedRoles, nil
 }
diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go
index a300c96ede566071de73472281753950a05e7bd6..dda2bc790b126cba6adf03f6f6ada8d2b97c82c9 100644
--- a/controller/rbac/databaseUserStore.go
+++ b/controller/rbac/databaseUserStore.go
@@ -1,6 +1,8 @@
 package rbac
 
 import (
+	"reflect"
+
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/database"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/errors"
@@ -93,7 +95,7 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (rbac.LoadedUser, error)
 	err := result.Decode(&loadedUser)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedUser, errors.ErrCouldNotMarshall{StoreName: s.userStoreName}
+		return loadedUser, errors.ErrCouldNotMarshall{Object: idOfUser, Type: reflect.TypeOf(loadedUser), Err: err}
 	}
 
 	return loadedUser, nil
@@ -116,7 +118,7 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (rbac.LoadedUser, error
 	err := result.Decode(&loadedUser)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedUser, errors.ErrCouldNotMarshall{StoreName: s.userStoreName}
+		return loadedUser, errors.ErrCouldNotMarshall{Object: nameOfUser, Type: reflect.TypeOf(loadedUser), Err: err}
 	}
 
 	return loadedUser, nil
@@ -142,7 +144,7 @@ func (s *DatabaseUserStore) GetAll() ([]rbac.LoadedUser, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{StoreName: s.userStoreName}
+		return nil, errors.ErrCouldNotMarshall{Type: reflect.TypeOf(loadedUsers), Err: err}
 	}
 	return loadedUsers, nil
 }