diff --git a/pkg/util/httpstream/spdy/roundtripper.go b/pkg/util/httpstream/spdy/roundtripper.go index c5b3c7d5c51..954f895ad1b 100644 --- a/pkg/util/httpstream/spdy/roundtripper.go +++ b/pkg/util/httpstream/spdy/roundtripper.go @@ -25,6 +25,8 @@ import ( "net/http" "strings" + "github.com/GoogleCloudPlatform/kubernetes/pkg/api" + apierrors "github.com/GoogleCloudPlatform/kubernetes/pkg/api/errors" "github.com/GoogleCloudPlatform/kubernetes/pkg/util/httpstream" "github.com/GoogleCloudPlatform/kubernetes/third_party/golang/netutil" ) @@ -137,6 +139,11 @@ func (s *SpdyRoundTripper) NewConnection(resp *http.Response) (httpstream.Connec if err != nil { responseError = "unable to read error from server response" } else { + if obj, err := api.Scheme.Decode(responseErrorBytes); err == nil { + if status, ok := obj.(*api.Status); ok { + return nil, &apierrors.StatusError{*status} + } + } responseError = string(responseErrorBytes) responseError = strings.TrimSpace(responseError) }