diff --git a/src/common/api/base.go b/src/common/api/base.go index f6fe36140..95356cd8a 100644 --- a/src/common/api/base.go +++ b/src/common/api/base.go @@ -193,12 +193,11 @@ func (b *BaseAPI) ParseAndHandleError(text string, err error) { if err == nil { return } - log.Errorf("%s: %v", text, err) if e, ok := err.(*commonhttp.Error); ok { - b.RenderError(e.Code, e.Message) + b.RenderError(e.Code, fmt.Sprintf("%s: %s", text, e.Message)) return } - b.SendInternalServerError(errors.New("")) + b.SendInternalServerError(fmt.Errorf("%s: %v", text, err)) } // SendUnAuthorizedError sends unauthorized error to the client. @@ -226,7 +225,7 @@ func (b *BaseAPI) SendBadRequestError(err error) { // When you send an internal server error to the client, you expect user to check the log // to find out the root cause. func (b *BaseAPI) SendInternalServerError(err error) { - b.RenderError(http.StatusInternalServerError, http.StatusText(http.StatusInternalServerError)) + b.RenderError(http.StatusInternalServerError, err.Error()) } // SendForbiddenError sends forbidden error to the client. diff --git a/src/core/api/registry.go b/src/core/api/registry.go index d20f18310..ad4b34986 100644 --- a/src/core/api/registry.go +++ b/src/core/api/registry.go @@ -416,7 +416,7 @@ func (t *RegistryAPI) GetInfo() { } info, err := adp.Info() if err != nil { - t.SendInternalServerError(fmt.Errorf("failed to get registry info %d: %v", id, err)) + t.ParseAndHandleError(fmt.Sprintf("failed to get registry info %d", id), err) return } // currently, only the local Harbor registry supports the event based trigger, append it here