#115 root middleware cannot run async because it might need to interact with the request before headers are parsed
since there can be many middleware in the router run it async