I'm curious on why we can't get a task attempt context passed in parameter.
Why is the TasAttemptID allowed to be created if missing? That would probably lead to inconsistencies.