A fix for some pages showing ERR_EMPTY_RESPONSE

The CMS team have been made aware that a small number of ULRs on a limited amount of sites hosted on UBC CMS have been showing an “ERR_EMPTY_RESPONSE” error in Google Chrome or similar warnings in other browsers. For the past 36 hours, we have been working on isolating the problem, reliably reproducing the issue, and are now happy to report that we have a fix.

A screenshot of a browser window showing an error "ERR_EMPTY_RESPONSE"

What is the fix?

Unfortunately, the fix is something that can only be made by our team as it requires direct database access.

If you or your users have seen pages on a site that show the ERR_EMPTY_RESPONSE error since Wednesday 21st July 2021, then please email lt.hub@ubc.ca and include the URL of the affected pages. We will then resolve the issue.

We have created a tool to automates this process. Once we have manually fixed the affected URLs they will immediately be available to your website’s visitors. However, those who edit the content of the URLs that are affected by this (i.e. the people who have author, editor, or administrator access to this site) will see one or more warnings that read “This block contains unexpected or invalid content.” and a button which says “Attempt Block Recovery”. Pressing this button should resolve the issue and your content should be available to edit once again.

A screenshot showing the back end of WordPress with a warning saying the “This block contains unexpected or invalid content.” and a button which says “Attempt Block Recovery”.

Why did this happen?

We updated UBC CMS to WordPress 5.8 as per our normal update routine on Wednesday July 21st 2021. Changes within WordPress core specifically to do with the Group Block meant that on some pages that already contained group blocks, that also contained over a certain amount of content, on our specific version of PHP, with the certain amount of RAM that our servers make available per request (yes, it appears to be that specific), the page would not be parsed correctly and the server would return an empty response. Technically this is an “acceptable” outcome and as such, this doesn’t produce any error logs. The lack of error logs, in combination with this only happening in very specific circumstances made this incredibly difficult. to debug.