CanonTask improvement
better exception and error handling