Previously it would have just given them the error HTML.
This is mostly so we don't have to do any wacky patching but it also makes it so we don't have to keep checking if the request is a web socket request every time we add middleware.
Now async routes are handled!