fallback to task_id if necessary