diff --git a/assets/templates/middleware/access_log b/assets/templates/middleware/access_log
old mode 100644
new mode 100755
index a8587b82d5a72130690a61c81e9f78e5eeb6e726..86b4fe25ef6247f78dd491578f5b6bf05fa8e992
--- a/assets/templates/middleware/access_log
+++ b/assets/templates/middleware/access_log
@@ -28,8 +28,8 @@ func {{$funcName}}(logger *zap.Logger) Middleware {
 {{range $method := .Interface.Methods}}
     func (m *{{$decorator}}) {{$method.Declaration}} {
         begin := time.Now()
-        {{- if $method.HasParams}}
         var fields []zapcore.Field
+        {{- if $method.HasParams}}
         for k, v := range {{$method.ParamsMap}} {
             if k == "ctx" {
 			    fields = append(fields, zap.String("principal", fmt.Sprint(auth.GetPrincipal(ctx))))
@@ -45,12 +45,13 @@ func {{$funcName}}(logger *zap.Logger) Middleware {
 
         fields = []zapcore.Field{
 			zap.Duration("time", time.Since(begin)),
-			zap.Error(err),
         }
 
         {{ if $method.HasResults}}
         for k, v := range {{$method.ResultsMap}} {
             if k == "err" {
+                err, _ := v.(error)
+                fields = append(fields, zap.Error(err))
                 continue
             }
             fields = append(fields, zap.Reflect(k,v))
diff --git a/assets/templates/middleware/error_log b/assets/templates/middleware/error_log
index 9455e907b738801eb7f2d43d428d98cc620370a0..16eb81a7eb963e20736c0b2933a6a87183c2225e 100755
--- a/assets/templates/middleware/error_log
+++ b/assets/templates/middleware/error_log
@@ -26,13 +26,13 @@ func {{$funcName}}(logger *zap.Logger) Middleware {
 
 {{range $method := .Interface.Methods}}
     func (m *{{$decorator}}) {{$method.Declaration}} {
-        logger := m.logger
         {{- if $method.ReturnsError}}
-            defer func() {
-                if err != nil {
-      		        logger.Warn("response error", zap.Error(err))
-      		    }
-      	    }()
+        logger := m.logger
+        defer func() {
+            if err != nil {
+      		    logger.Warn("response error", zap.Error(err))
+      		}
+      	}()
         {{end -}}
 
         {{ $method.Pass "m.next." }}
diff --git a/pkg/clients/middleware/logging_middleware.go b/pkg/clients/middleware/logging_middleware.go
index ef3ea5947a637bfa9caffa3af64f1f7cd2b8e019..6fa0e811c5511748b55d756742a2c81789c0cced 100644
--- a/pkg/clients/middleware/logging_middleware.go
+++ b/pkg/clients/middleware/logging_middleware.go
@@ -52,13 +52,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, client *clients.Client)
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,12 +90,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, id strin
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -126,12 +128,13 @@ func (m *loggingMiddleware) Enable(ctx context.Context, spaceId string, id strin
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -162,13 +165,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, id string)
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"client": client,
 		"err":    err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -199,13 +203,14 @@ func (m *loggingMiddleware) GetBy(ctx context.Context, spaceId string, params *c
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"client": client,
 		"err":    err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -235,13 +240,14 @@ func (m *loggingMiddleware) List(ctx context.Context, spaceId string) (clients [
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"clients": clients,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -271,12 +277,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, client *clients.Client)
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/collaborators/middleware/logging_middleware.go b/pkg/collaborators/middleware/logging_middleware.go
index 41f541e6cc0e09f2fc6240d585159bda09c10a74..757d98c7027712c85be55f7314b917027f028f6e 100644
--- a/pkg/collaborators/middleware/logging_middleware.go
+++ b/pkg/collaborators/middleware/logging_middleware.go
@@ -53,13 +53,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, subject str
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"role": role,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,13 +90,14 @@ func (m *loggingMiddleware) ListCollaborators(ctx context.Context, spaceId strin
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"collaborators": collaborators,
 		"err":           err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -125,13 +127,14 @@ func (m *loggingMiddleware) ListSpaces(ctx context.Context, subject string) (spa
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"spaces": spaces,
 		"err":    err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -162,12 +165,13 @@ func (m *loggingMiddleware) Remove(ctx context.Context, spaceId string, subject
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -199,12 +203,13 @@ func (m *loggingMiddleware) Set(ctx context.Context, spaceId string, subject str
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/collections/middleware/logging_middleware.go b/pkg/collections/middleware/logging_middleware.go
index dd43cb9ffd3e662241a1bb08e7174cfd1c5677df..a420f16e1c7d94c42838c6e5758e381f6cc33d95 100644
--- a/pkg/collections/middleware/logging_middleware.go
+++ b/pkg/collections/middleware/logging_middleware.go
@@ -53,13 +53,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, collection *collections.
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -91,12 +92,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, envId st
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -129,13 +131,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId strin
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"collection": collection,
 		"err":        err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -167,13 +170,14 @@ func (m *loggingMiddleware) List(ctx context.Context, spaceId string, envId stri
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"collections": collections,
 		"err":         err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -206,12 +210,13 @@ func (m *loggingMiddleware) SetSchema(ctx context.Context, spaceId string, envId
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -244,12 +249,13 @@ func (m *loggingMiddleware) SetState(ctx context.Context, spaceId string, envId
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -279,12 +285,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, coll *collections.Collec
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/environments/middleware/logging_middleware.go b/pkg/environments/middleware/logging_middleware.go
index 26f4eb279126e6a008db8998b83012c8a316ca2f..21c0abf2d28b9123c19826de5cabb56b92552907 100644
--- a/pkg/environments/middleware/logging_middleware.go
+++ b/pkg/environments/middleware/logging_middleware.go
@@ -52,13 +52,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, env *environments.Enviro
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,12 +90,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, envId st
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -125,13 +127,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId strin
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"env": env,
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -161,13 +164,14 @@ func (m *loggingMiddleware) List(ctx context.Context, spaceId string) (envs []*e
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"envs": envs,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -199,12 +203,13 @@ func (m *loggingMiddleware) Migrate(ctx context.Context, spaceId string, envId s
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -236,12 +241,13 @@ func (m *loggingMiddleware) RemoveAlias(ctx context.Context, spaceId string, env
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -273,12 +279,13 @@ func (m *loggingMiddleware) SetAlias(ctx context.Context, spaceId string, envId
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -308,12 +315,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, env *environments.Enviro
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/invitations/middleware/logging_middleware.go b/pkg/invitations/middleware/logging_middleware.go
index 8f1ceb9959497794cc4bc7a2d6a963a949d9b1a3..133ecf51350c710e1aebd8abe9cd787d65e2793c 100644
--- a/pkg/invitations/middleware/logging_middleware.go
+++ b/pkg/invitations/middleware/logging_middleware.go
@@ -54,12 +54,13 @@ func (m *loggingMiddleware) Accept(ctx context.Context, invitationId string, use
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,13 +90,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, invitation *invitations.
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -125,12 +127,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, invitationId string) (er
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -161,7 +164,6 @@ func (m *loggingMiddleware) Find(ctx context.Context, filter *invitations.Filter
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -169,6 +171,8 @@ func (m *loggingMiddleware) Find(ctx context.Context, filter *invitations.Filter
 		"total":       total,
 		"err":         err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -198,13 +202,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, invitationId string) (invit
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"invitation": invitation,
 		"err":        err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/items/middleware/logging_middleware.go b/pkg/items/middleware/logging_middleware.go
index 102b91874c63655c169e5c101b10490e375833b9..8fbcc10ef739e12c5d64e60a74b83ac3b7a0221f 100644
--- a/pkg/items/middleware/logging_middleware.go
+++ b/pkg/items/middleware/logging_middleware.go
@@ -57,13 +57,14 @@ func (m *loggingMiddleware) Aggregate(ctx context.Context, spaceId string, envId
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"result": result,
 		"err":    err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -97,13 +98,14 @@ func (m *loggingMiddleware) AggregatePublished(ctx context.Context, spaceId stri
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"result": result,
 		"err":    err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -134,12 +136,13 @@ func (m *loggingMiddleware) Archive(ctx context.Context, item *items.Item, optio
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -170,13 +173,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, item *items.Item, opts .
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -210,12 +214,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, envId st
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -249,7 +254,6 @@ func (m *loggingMiddleware) Find(ctx context.Context, spaceId string, envId stri
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -257,6 +261,8 @@ func (m *loggingMiddleware) Find(ctx context.Context, spaceId string, envId stri
 		"total": total,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -290,7 +296,6 @@ func (m *loggingMiddleware) FindArchived(ctx context.Context, spaceId string, en
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -298,6 +303,8 @@ func (m *loggingMiddleware) FindArchived(ctx context.Context, spaceId string, en
 		"total": total,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -331,7 +338,6 @@ func (m *loggingMiddleware) FindPublished(ctx context.Context, spaceId string, e
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -339,6 +345,8 @@ func (m *loggingMiddleware) FindPublished(ctx context.Context, spaceId string, e
 		"total": total,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -372,13 +380,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId strin
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"item": item,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -412,13 +421,14 @@ func (m *loggingMiddleware) GetPublished(ctx context.Context, spaceId string, en
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"item": item,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -453,13 +463,14 @@ func (m *loggingMiddleware) GetRevision(ctx context.Context, spaceId string, env
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"item": item,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -490,7 +501,6 @@ func (m *loggingMiddleware) Introspect(ctx context.Context, item *items.Item, op
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -498,6 +508,8 @@ func (m *loggingMiddleware) Introspect(ctx context.Context, item *items.Item, op
 		"sch": sch,
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -531,13 +543,14 @@ func (m *loggingMiddleware) ListRevisions(ctx context.Context, spaceId string, e
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"items": items,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -568,12 +581,13 @@ func (m *loggingMiddleware) Publish(ctx context.Context, item *items.Item, optio
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -604,12 +618,13 @@ func (m *loggingMiddleware) Unarchive(ctx context.Context, item *items.Item, opt
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -643,12 +658,13 @@ func (m *loggingMiddleware) Undelete(ctx context.Context, spaceId string, envId
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -679,12 +695,13 @@ func (m *loggingMiddleware) Unpublish(ctx context.Context, item *items.Item, opt
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -715,12 +732,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, item *items.Item, option
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/locales/middleware/logging_middleware.go b/pkg/locales/middleware/logging_middleware.go
index fb98d25759e87d199e8c65a204f30b3acb48c1f4..2d466633af466f7b0bb1d09e99de66411861ffa5 100644
--- a/pkg/locales/middleware/logging_middleware.go
+++ b/pkg/locales/middleware/logging_middleware.go
@@ -52,13 +52,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, locale *locales.Locale)
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,12 +90,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, localeId
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -124,13 +126,14 @@ func (m *loggingMiddleware) List(ctx context.Context, spaceId string) (locales [
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"locales": locales,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/members/middleware/logging_middleware.go b/pkg/members/middleware/logging_middleware.go
index 1b9ead6d06d694945c89638c52d4bce07e4ee938..49d5f5040aa2af21f32f72fcd24a4638c625674e 100644
--- a/pkg/members/middleware/logging_middleware.go
+++ b/pkg/members/middleware/logging_middleware.go
@@ -53,13 +53,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, orgId string, userId string
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"role": role,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,13 +90,14 @@ func (m *loggingMiddleware) ListMembers(ctx context.Context, orgId string) (memb
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"members": members,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -125,13 +127,14 @@ func (m *loggingMiddleware) ListOrganizations(ctx context.Context, userId string
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"organizations": organizations,
 		"err":           err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -162,12 +165,13 @@ func (m *loggingMiddleware) Remove(ctx context.Context, orgId string, userId str
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -197,12 +201,13 @@ func (m *loggingMiddleware) RemoveAll(ctx context.Context, orgId string) (err er
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -234,12 +239,13 @@ func (m *loggingMiddleware) Set(ctx context.Context, orgId string, userId string
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/organizations/middleware/logging_middleware.go b/pkg/organizations/middleware/logging_middleware.go
index 6f33296d5cecbee19be4bff65da4280486cd1958..854369eddb8135e0ca02ef8de2c7d28a62fcf53c 100644
--- a/pkg/organizations/middleware/logging_middleware.go
+++ b/pkg/organizations/middleware/logging_middleware.go
@@ -53,13 +53,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, org *organizations.Organ
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,12 +90,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, orgId string) (err error
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -125,7 +127,6 @@ func (m *loggingMiddleware) Find(ctx context.Context, filter *organizations.Filt
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -133,6 +134,8 @@ func (m *loggingMiddleware) Find(ctx context.Context, filter *organizations.Filt
 		"total": total,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -162,13 +165,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, orgId string) (org *organiz
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"org": org,
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -198,12 +202,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, org *organizations.Organ
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/references/middleware/logging_middleware.go b/pkg/references/middleware/logging_middleware.go
index 62a0e9d5cf26c6ab0d131fff2fd443cffd8fb8f3..4b0a7a02b3deda9ac8b126800e9cfb3e0d08ca3b 100644
--- a/pkg/references/middleware/logging_middleware.go
+++ b/pkg/references/middleware/logging_middleware.go
@@ -55,7 +55,6 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId strin
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -63,6 +62,8 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, envId strin
 		"notfound": notfound,
 		"err":      err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/roles/middleware/logging_middleware.go b/pkg/roles/middleware/logging_middleware.go
index ab536b6ad9e168adc79691a3127be8a47f9e5ba7..3aa200d2971336eebd39fb0ec83b053c66fbf6e6 100644
--- a/pkg/roles/middleware/logging_middleware.go
+++ b/pkg/roles/middleware/logging_middleware.go
@@ -52,13 +52,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, role *roles.Role) (creat
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,12 +90,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string, roleId s
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -125,13 +127,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string, roleId stri
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"role": role,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -161,13 +164,14 @@ func (m *loggingMiddleware) List(ctx context.Context, spaceId string) (roles []*
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"roles": roles,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -197,12 +201,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, role *roles.Role) (err e
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/spaces/middleware/logging_middleware.go b/pkg/spaces/middleware/logging_middleware.go
index 1471ea19535139210e79968e5a4522001a0b2ae3..6720f61f53ea031e855527047760ca73f8e6daf0 100644
--- a/pkg/spaces/middleware/logging_middleware.go
+++ b/pkg/spaces/middleware/logging_middleware.go
@@ -52,13 +52,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, space *spaces.Space) (cr
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"created": created,
 		"err":     err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -88,12 +89,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, spaceId string) (err err
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -123,13 +125,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, spaceId string) (space *spa
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"space": space,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -159,13 +162,14 @@ func (m *loggingMiddleware) List(ctx context.Context, orgId string) (spaces []*s
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"spaces": spaces,
 		"err":    err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -195,12 +199,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, space *spaces.Space) (er
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -231,12 +236,13 @@ func (m *loggingMiddleware) UpdateConfig(ctx context.Context, spaceId string, co
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
diff --git a/pkg/users/middleware/logging_middleware.go b/pkg/users/middleware/logging_middleware.go
index 1fcae0626b75992ae563ff87adfd4e33edd49af6..d59a73c663642781c3ff6f5587e3d8c9d162d8cc 100644
--- a/pkg/users/middleware/logging_middleware.go
+++ b/pkg/users/middleware/logging_middleware.go
@@ -53,13 +53,14 @@ func (m *loggingMiddleware) Create(ctx context.Context, create *users.User) (use
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"user": user,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -89,12 +90,13 @@ func (m *loggingMiddleware) Delete(ctx context.Context, userId string) (err erro
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -125,7 +127,6 @@ func (m *loggingMiddleware) Find(ctx context.Context, filter *users.Filter, opti
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
@@ -133,6 +134,8 @@ func (m *loggingMiddleware) Find(ctx context.Context, filter *users.Filter, opti
 		"total": total,
 		"err":   err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -162,13 +165,14 @@ func (m *loggingMiddleware) Get(ctx context.Context, userId string) (user *users
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"user": user,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -198,13 +202,14 @@ func (m *loggingMiddleware) GetByIdentity(ctx context.Context, identity string)
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"user": user,
 		"err":  err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))
@@ -234,12 +239,13 @@ func (m *loggingMiddleware) Update(ctx context.Context, update *users.User) (err
 
 	fields = []zapcore.Field{
 		zap.Duration("time", time.Since(begin)),
-		zap.Error(err),
 	}
 
 	for k, v := range map[string]interface{}{
 		"err": err} {
 		if k == "err" {
+			err, _ := v.(error)
+			fields = append(fields, zap.Error(err))
 			continue
 		}
 		fields = append(fields, zap.Reflect(k, v))