diff --git a/controller/config/gnmiSubscriptionConfig.go b/controller/config/gnmiSubscriptionConfig.go
index 9e24a24f56420d0473eb0e1bfff6914c7c99143e..dc8ede429fd7e9579d92e9b6e28efb8a620d98b4 100644
--- a/controller/config/gnmiSubscriptionConfig.go
+++ b/controller/config/gnmiSubscriptionConfig.go
@@ -36,7 +36,8 @@ func ReadGnmiSubscriptionPaths() (err error) {
 
 	defer func() {
 		if ferr := f.Close(); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/nucleus/databaseDeviceStore.go b/controller/nucleus/databaseDeviceStore.go
index cfd49f03c1c2d758342d7638fd3d0686af767bbb..bde970aaaac6f89eb756116dc386e505fb228018 100644
--- a/controller/nucleus/databaseDeviceStore.go
+++ b/controller/nucleus/databaseDeviceStore.go
@@ -53,7 +53,8 @@ func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (loadedDevice device
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 	db := client.Database(database.DatabaseName)
@@ -77,7 +78,8 @@ func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (loadedDevice devic
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 	db := client.Database(database.DatabaseName)
@@ -102,7 +104,8 @@ func (s *DatabaseDeviceStore) GetAll() (loadedDevices []device.LoadedDevice, err
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -115,7 +118,8 @@ func (s *DatabaseDeviceStore) GetAll() (loadedDevices []device.LoadedDevice, err
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -135,7 +139,8 @@ func (s *DatabaseDeviceStore) Add(deviceToAdd device.Device) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -158,7 +163,8 @@ func (s *DatabaseDeviceStore) Update(deviceToUpdate device.Device) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -191,7 +197,8 @@ func (s *DatabaseDeviceStore) Delete(deviceToDelete device.Device) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/nucleus/databasePndStore.go b/controller/nucleus/databasePndStore.go
index 2fd3a8e0dd5b167989e882540cc00ba71730f580..49352a793779e90b0f520af4e442bb993dcf43e7 100644
--- a/controller/nucleus/databasePndStore.go
+++ b/controller/nucleus/databasePndStore.go
@@ -1,6 +1,8 @@
 package nucleus
 
 import (
+	"fmt"
+
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/device"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain"
 
@@ -33,7 +35,8 @@ func (s *DatabasePndStore) Get(query store.Query) (newPnd networkdomain.NetworkD
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 	db := client.Database(database.DatabaseName)
@@ -77,7 +80,8 @@ func (s *DatabasePndStore) GetAll() (pnds []networkdomain.NetworkDomain, err err
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -90,7 +94,8 @@ func (s *DatabasePndStore) GetAll() (pnds []networkdomain.NetworkDomain, err err
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -130,7 +135,8 @@ func (s *DatabasePndStore) Add(pndToAdd networkdomain.NetworkDomain) (err error)
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -151,7 +157,8 @@ func (s *DatabasePndStore) Delete(pndToDelete networkdomain.NetworkDomain) (err
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 	db := client.Database(database.DatabaseName)
diff --git a/controller/nucleus/databaseSbiStore.go b/controller/nucleus/databaseSbiStore.go
index 707bb7c8811e1f25aaaaf165d821c9f2bf4a0204..9b20be4f6866963333211a4d7022010dec66df4d 100644
--- a/controller/nucleus/databaseSbiStore.go
+++ b/controller/nucleus/databaseSbiStore.go
@@ -1,6 +1,8 @@
 package nucleus
 
 import (
+	"fmt"
+
 	"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"
@@ -23,7 +25,8 @@ func (s *DatabaseSbiStore) Add(sbiToAdd southbound.SouthboundInterface) (err err
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -47,7 +50,8 @@ func (s *DatabaseSbiStore) Delete(sbiToDelete southbound.SouthboundInterface) (e
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -68,7 +72,8 @@ func (s *DatabaseSbiStore) Get(query store.Query) (loadedSbi southbound.LoadedSb
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -97,7 +102,8 @@ func (s *DatabaseSbiStore) GetAll() (loadedSbis []southbound.LoadedSbi, err erro
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 	db := client.Database(database.DatabaseName)
@@ -109,7 +115,8 @@ func (s *DatabaseSbiStore) GetAll() (loadedSbis []southbound.LoadedSbi, err erro
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/nucleus/principalNetworkDomain.go b/controller/nucleus/principalNetworkDomain.go
index 90cd017847e946b0462dd10274c6b61c59482075..17e82ae8deeb4e1c8b0d7b58a905bc7a0a8efbe5 100644
--- a/controller/nucleus/principalNetworkDomain.go
+++ b/controller/nucleus/principalNetworkDomain.go
@@ -852,7 +852,7 @@ type StreamClient interface {
 // gRPC stream. A 'gostructs.go' file is created within the goSDN's
 // 'plugin-folder'. Each 'gostructs.go' file is stored in its own folder based
 // on a new uuid.UUID.
-func saveStreamToFile[T StreamClient](sc T, filename string, id uuid.UUID) error {
+func saveStreamToFile[T StreamClient](sc T, filename string, id uuid.UUID) (err error) {
 	folderName := viper.GetString("plugin-folder")
 	path := filepath.Join(folderName, id.String(), filename)
 
@@ -876,8 +876,9 @@ func saveStreamToFile[T StreamClient](sc T, filename string, id uuid.UUID) error
 	}
 
 	defer func() {
-		if err := f.Close(); err != nil {
-			log.Error("error closing file: ", err)
+		if ferr := f.Close(); ferr != nil {
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w error closing file:%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/rbac/databaseRoleStore.go b/controller/rbac/databaseRoleStore.go
index 2577a0f232d9b4d51dfe83b73a1700fce365ce4b..6fd402e8330fc9ac15802a8deb524edfd8ac2acb 100644
--- a/controller/rbac/databaseRoleStore.go
+++ b/controller/rbac/databaseRoleStore.go
@@ -1,6 +1,8 @@
 package rbac
 
 import (
+	"fmt"
+
 	"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"
@@ -24,7 +26,8 @@ func (s *DatabaseRoleStore) Add(roleToAdd rbac.Role) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -48,7 +51,8 @@ func (s *DatabaseRoleStore) Delete(roleToDelete rbac.Role) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -89,7 +93,8 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (loadedRole rbac.LoadedR
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -114,7 +119,8 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (loadedRole rbac.Loaded
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -140,7 +146,8 @@ func (s *DatabaseRoleStore) GetAll() (loadedRoles []rbac.LoadedRole, err error)
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -153,7 +160,8 @@ func (s *DatabaseRoleStore) GetAll() (loadedRoles []rbac.LoadedRole, err error)
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -174,7 +182,8 @@ func (s *DatabaseRoleStore) Update(roleToUpdate rbac.Role) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 	update := bson.D{primitive.E{Key: "$set", Value: roleToUpdate}}
diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go
index 6cc37cba4d2d1fcf0553e60380ebdb9114773a73..e58f54756eb706074ca1793f709213a828a73f46 100644
--- a/controller/rbac/databaseUserStore.go
+++ b/controller/rbac/databaseUserStore.go
@@ -1,6 +1,8 @@
 package rbac
 
 import (
+	"fmt"
+
 	"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"
@@ -24,7 +26,8 @@ func (s *DatabaseUserStore) Add(userToAdd rbac.User) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -48,7 +51,8 @@ func (s *DatabaseUserStore) Delete(userToDelete rbac.User) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -89,7 +93,8 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (loadedUser rbac.LoadedU
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -114,7 +119,8 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (loadedUser rbac.Loaded
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -140,7 +146,8 @@ func (s *DatabaseUserStore) GetAll() (loadedUsers []rbac.LoadedUser, err error)
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -153,7 +160,8 @@ func (s *DatabaseUserStore) GetAll() (loadedUsers []rbac.LoadedUser, err error)
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -174,7 +182,8 @@ func (s *DatabaseUserStore) Update(userToUpdate rbac.User) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/topology/nodes/nodeStore.go b/controller/topology/nodes/nodeStore.go
index 90891452eeb966bb3faf55de8c9bf8425c9cf3be..706d8699bcf151ab900be4bc25e08fa9bdaee50a 100644
--- a/controller/topology/nodes/nodeStore.go
+++ b/controller/topology/nodes/nodeStore.go
@@ -60,7 +60,8 @@ func (s *DatabaseNodeStore) getByID(idOfNode uuid.UUID) (loadedNode Node, err er
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -86,7 +87,8 @@ func (s *DatabaseNodeStore) getByName(nameOfNode string) (loadedNode Node, err e
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -111,7 +113,8 @@ func (s *DatabaseNodeStore) GetAll() (loadedNode []Node, err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 	db := client.Database(database.DatabaseName)
@@ -123,7 +126,8 @@ func (s *DatabaseNodeStore) GetAll() (loadedNode []Node, err error) {
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -141,7 +145,8 @@ func (s *DatabaseNodeStore) Add(node Node) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -163,7 +168,8 @@ func (s *DatabaseNodeStore) Update(node Node) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -194,7 +200,8 @@ func (s *DatabaseNodeStore) Delete(node Node) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/topology/ports/portStore.go b/controller/topology/ports/portStore.go
index 45907c054869f345700bf00605578ed7f4ff3bf5..a5a9a8b3ad6fb39f4800a503d202e3ce15deda48 100644
--- a/controller/topology/ports/portStore.go
+++ b/controller/topology/ports/portStore.go
@@ -61,7 +61,8 @@ func (s *DatabasePortStore) getByID(idOfPort uuid.UUID) (loadedPort Port, err er
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -87,7 +88,8 @@ func (s *DatabasePortStore) getByName(nameOfPort string) (loadedPort Port, err e
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -112,7 +114,8 @@ func (s *DatabasePortStore) GetAll() (loadedPorts []Port, err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -125,7 +128,8 @@ func (s *DatabasePortStore) GetAll() (loadedPorts []Port, err error) {
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -143,7 +147,8 @@ func (s *DatabasePortStore) Add(port Port) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -165,7 +170,8 @@ func (s *DatabasePortStore) Update(port Port) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -196,7 +202,8 @@ func (s *DatabasePortStore) Delete(port Port) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/topology/routing-tables/routingTableStore.go b/controller/topology/routing-tables/routingTableStore.go
index 72aa625c61be6c15d175948827f74e63957f20aa..38bb029f071d0b2c50fbb84517ea58baa577dcf6 100644
--- a/controller/topology/routing-tables/routingTableStore.go
+++ b/controller/topology/routing-tables/routingTableStore.go
@@ -60,7 +60,8 @@ func (s *DatabaseRoutingTableStore) getByID(idOfRoutingTable uuid.UUID) (routing
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -84,7 +85,8 @@ func (s *DatabaseRoutingTableStore) getByName(nameOfRoutingTable string) (loaded
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -109,7 +111,8 @@ func (s *DatabaseRoutingTableStore) GetAll() (loadedRoutingTable []RoutingTable,
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -122,7 +125,8 @@ func (s *DatabaseRoutingTableStore) GetAll() (loadedRoutingTable []RoutingTable,
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -140,7 +144,8 @@ func (s *DatabaseRoutingTableStore) Add(routingTable RoutingTable) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -162,7 +167,8 @@ func (s *DatabaseRoutingTableStore) Update(routingTable RoutingTable) (err error
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -193,7 +199,8 @@ func (s *DatabaseRoutingTableStore) Delete(routingTable RoutingTable) (err error
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/controller/topology/topologyStore.go b/controller/topology/topologyStore.go
index ed9318e03e839f4de198ed4f0b332195793c9ffa..0dc6431f47a65a95514771c8500630c9ea4aae26 100644
--- a/controller/topology/topologyStore.go
+++ b/controller/topology/topologyStore.go
@@ -61,7 +61,8 @@ func (s *DatabaseTopologyStore) getByID(idOfTopology uuid.UUID) (loadedTopology
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -85,7 +86,8 @@ func (s *DatabaseTopologyStore) getByName(nameOfTopology string) (loadedTopology
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -110,7 +112,8 @@ func (s *DatabaseTopologyStore) GetAll() (loadedTopology []links.Link, err error
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -123,7 +126,8 @@ func (s *DatabaseTopologyStore) GetAll() (loadedTopology []links.Link, err error
 	}
 	defer func() {
 		if ferr := cursor.Close(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -141,7 +145,8 @@ func (s *DatabaseTopologyStore) Add(link links.Link) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -163,7 +168,8 @@ func (s *DatabaseTopologyStore) Update(linkToUpdate links.Link) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
@@ -194,7 +200,8 @@ func (s *DatabaseTopologyStore) Delete(linkToDelete links.Link) (err error) {
 	defer cancel()
 	defer func() {
 		if ferr := client.Disconnect(ctx); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/csbi/build.go b/csbi/build.go
index e16355707f5702b1120f918876e88e56c907358e..ee20cb8ca03fdcc03178196867f7a2f950965806 100644
--- a/csbi/build.go
+++ b/csbi/build.go
@@ -54,7 +54,8 @@ func buildImage(d Deployment, dockerClient *client.Client) (err error) {
 	}
 	defer func() {
 		if ferr := res.Body.Close(); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()
 
diff --git a/csbi/grpc.go b/csbi/grpc.go
index 77a7fa850d9f6b04f7a69541cb0760976d464621..cd6359f179f063a958e98bb20d6f2207475f69e6 100644
--- a/csbi/grpc.go
+++ b/csbi/grpc.go
@@ -108,7 +108,8 @@ func (s server) GetFile(req *pb.GetPayloadRequest, stream pb.CsbiService_GetFile
 	var file *os.File
 	defer func() {
 		if ferr := file.Close(); ferr != nil {
-			err = ferr
+			fErrString := ferr.Error()
+			err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
 		}
 	}()