in pkg/confidence/utils.go [101:139]
func processResolveError(err error, defaultValue interface{}) InterfaceResolutionDetail {
// Try to unwrap the error to find the underlying type
var netErr net.Error
if errors.As(err, &netErr) && netErr.Timeout() {
return InterfaceResolutionDetail{
Value: defaultValue,
ResolutionDetail: ResolutionDetail{
Variant: "",
Reason: DefaultReason,
ErrorCode: TimeoutCode,
ErrorMessage: "error when resolving, timeout",
FlagMetadata: nil,
}}
}
switch {
case errors.Is(err, errFlagNotFound):
return InterfaceResolutionDetail{
Value: defaultValue,
ResolutionDetail: ResolutionDetail{
Variant: "",
Reason: DefaultReason,
ErrorCode: FlagNotFoundCode,
ErrorMessage: "error when resolving, flag not found",
FlagMetadata: nil,
},
}
default:
return InterfaceResolutionDetail{
Value: defaultValue,
ResolutionDetail: ResolutionDetail{
Variant: "",
Reason: DefaultReason,
ErrorCode: GeneralCode,
ErrorMessage: "error when resolving, returning default value",
FlagMetadata: nil,
}}
}
}