diff --git a/internal/api/grpc/caos_errors.go b/internal/api/grpc/caos_errors.go index 5ed7fa95da..413a2fd128 100644 --- a/internal/api/grpc/caos_errors.go +++ b/internal/api/grpc/caos_errors.go @@ -11,14 +11,14 @@ func CaosToGRPCError(err error) error { if err == nil { return nil } - code, msg, ok := extract(err) + code, msg, ok := Extract(err) if !ok { return status.Convert(err).Err() } return status.Error(code, msg) } -func extract(err error) (c codes.Code, msg string, ok bool) { +func Extract(err error) (c codes.Code, msg string, ok bool) { switch caosErr := err.(type) { case *caos_errs.AlreadyExistsError: return codes.AlreadyExists, caosErr.GetMessage(), true diff --git a/internal/tracing/span.go b/internal/tracing/span.go index 1ad46ca0b1..aff92822c2 100644 --- a/internal/tracing/span.go +++ b/internal/tracing/span.go @@ -5,9 +5,8 @@ import ( "strconv" "go.opencensus.io/trace" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" + "github.com/caos/zitadel/internal/api/grpc" "github.com/caos/zitadel/internal/errors" ) @@ -41,10 +40,8 @@ func (s *Span) SetStatusByError(err error) { } func statusFromError(err error) trace.Status { - if statusErr, ok := status.FromError(err); ok { - return trace.Status{Code: int32(statusErr.Code()), Message: statusErr.Message()} - } - return trace.Status{Code: int32(codes.Unknown), Message: "Unknown"} + code, msg, _ := grpc.Extract(err) + return trace.Status{Code: int32(code), Message: msg} } // AddAnnotation creates an annotation. The annotation will not be added to the tracing use Annotate(msg) afterwards