cmd icon indicating copy to clipboard operation
cmd copied to clipboard

Harness Compilation error page has status 200 OK

Open r32rf opened this issue 3 years ago • 0 comments

When Harness responds with a compilation error, it generates the page with 200 OK. https://github.com/revel/cmd/blob/master/harness/harness.go#L137

atomic.CompareAndSwapInt32(&lastRequestHadError, 0, 1)
h.renderError(w, r, err)
return

It would probably be best to call w.WriteHeader(http.StatusInternalServerError).

This issue affected me in a AJAX handler that triggered the success callback on a compilation error with the HTML as a string rather than the decoded JSON object I was expecting.

Furthermore, it would be nicer if the error response also respected the Accept HTTP header. For example, if Accept equals "application/json":

{
    "Error": "Go Compilation Error", // Equal to the title of the html page.
    "Message": "The Go code %s does not compile: %s", // Equal to the content of .header p
    "File":  {
        "File": "%s (around line %d)", // Equal to .source h2
        "Line": "%s", // Equal to the highlighted code block rendered in .source
     }
}

r32rf avatar Oct 09 '20 08:10 r32rf