In order to provide a better experience for users we have begun flushing our head section of our website well before we have accumulated and rendered the HTML to be sent to a client. This has many benefits...
... For what would normally be a 500 or 400 response, we are currently returning a 200.
You'll need to setup your server so that on each request, it successfully passes all the checks required to deliver the 200 response BEFORE any output is sent to the client (a.k.a. your website visitor's browser) because in the HTTP 1.x specification, the first line of output (10th character I think) is the actual status code delivered to the client. Yes I understand this increases the time to first byte somewhat, but delivering the truth is well worth it for all your guests (including the google robot, googlebot).
The first line in a typical HTTP 1.x request goes along the lines of:
HTTP/1.1 200 Success
Then after other HTTP headers can be used to optimize the page. Consider client caching.
After the HTTP headers are sent to the client, The HTML then follows.