Use our standard invocation functions to get consistent logging and
error handling

this also adds some error handling that was missing