package grpcerrors

import "github.com/moby/buildkit/util/grpcerrors"

Index

Functions

func AsGRPCStatus

func AsGRPCStatus(err error) (*status.Status, bool)

AsGRPCStatus tries to extract a gRPC status from the error. Supports `Unwrap() error` and `Unwrap() []error` for wrapped errors. When the `Unwrap() []error` returns multiple errors, the first one that contains a gRPC status that is not OK is returned with the full error message.

func Code

func Code(err error) codes.Code

Code returns the gRPC status code for the given error. If the error type has a `Code() codes.Code` method, it is used. If the error type has a `GRPCStatus() *status.Status` method, its code is used. As a fallback: Supports `Unwrap() error` and `Unwrap() []error` for wrapped errors. When the `Unwrap() []error` returns multiple errors, the first one that contains a non-OK code is returned. Finally, if the error is a context error, the corresponding code is returned.

func FromGRPC

func FromGRPC(err error) error

func StreamClientInterceptor

func StreamClientInterceptor(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error)

func StreamServerInterceptor

func StreamServerInterceptor(srv any, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error

func ToGRPC

func ToGRPC(ctx context.Context, err error) error

func UnaryClientInterceptor

func UnaryClientInterceptor(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error

func UnaryServerInterceptor

func UnaryServerInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp any, err error)

func WrapCode

func WrapCode(err error, code codes.Code) error

Types

type TypedError

type TypedError interface {
	ToProto() TypedErrorProto
}

type TypedErrorProto

type TypedErrorProto interface {
	proto.Message
	WrapError(error) error
}

Source Files

grpcerrors.go intercept.go

Version
v0.28.0-rc1
Published
Feb 24, 2026
Platform
linux/amd64
Imports
16 packages
Last checked
2 minutes ago

Tools for package owners.