Change the interface of CanHandle to return error information.

I think this should should help improve robustness and give better error feedback.
I think this one is not an error, all non-Docker containers will fail here.