You should also probably make sure that the invocation deals correctly with exceptions.

When `context.invoke()` is executed and fails, the context won't be switched back to a defaultContext.