it turns out not - 

for an HTTPS request there is a CONNECT request sent first which fails to match on a scheme of https, so the correct handler is not selected.

I have reordered it so it tries to match http scheme first, and if not then it matches on the connect which would match for all https connections, failing that it logs an error message