From 218454a0892ff234614c38d78be52d719fea3b2e Mon Sep 17 00:00:00 2001
From: Alena Petraki <alena.petraki@gmail.com>
Date: Wed, 19 Apr 2023 16:21:44 +0300
Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?=
 =?UTF-8?q?=D0=B5=D0=BD=D1=8B=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20?=
 =?UTF-8?q?=D0=B2=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=D0=B0=D1=85=20?=
 =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86=D0=B8=D0=B8=20middle?=
 =?UTF-8?q?ware.=20=D0=9F=D0=B5=D1=80=D0=B5=D0=B3=D0=B5=D0=BD=D0=B5=D1=80?=
 =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B=20=D0=B2=D1=81=D0=B5?=
 =?UTF-8?q?=20middleware?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 assets/templates/middleware/access_log        |  5 +-
 assets/templates/middleware/error_log         | 12 ++---
 pkg/clients/middleware/logging_middleware.go  | 21 +++++---
 .../middleware/logging_middleware.go          | 15 ++++--
 .../middleware/logging_middleware.go          | 21 +++++---
 .../middleware/logging_middleware.go          | 24 ++++++---
 .../middleware/logging_middleware.go          | 15 ++++--
 pkg/items/middleware/logging_middleware.go    | 54 ++++++++++++-------
 pkg/locales/middleware/logging_middleware.go  |  9 ++--
 pkg/members/middleware/logging_middleware.go  | 18 ++++---
 .../middleware/logging_middleware.go          | 15 ++++--
 .../middleware/logging_middleware.go          |  3 +-
 pkg/roles/middleware/logging_middleware.go    | 15 ++++--
 pkg/spaces/middleware/logging_middleware.go   | 18 ++++---
 pkg/users/middleware/logging_middleware.go    | 18 ++++---
 15 files changed, 173 insertions(+), 90 deletions(-)
 mode change 100644 => 100755 assets/templates/middleware/access_log

diff --git a/assets/templates/middleware/access_log b/assets/templates/middleware/access_log
old mode 100644
new mode 100755
index a8587b82..86b4fe25
--- 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 9455e907..16eb81a7 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 ef3ea594..6fa0e811 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 41f541e6..757d98c7 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 dd43cb9f..a420f16e 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 26f4eb27..21c0abf2 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 8f1ceb99..133ecf51 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 102b9187..8fbcc10e 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 fb98d257..2d466633 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 1b9ead6d..49d5f504 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 6f33296d..854369ed 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 62a0e9d5..4b0a7a02 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 ab536b6a..3aa200d2 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 1471ea19..6720f61f 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 1fcae062..d59a73c6 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))
-- 
GitLab