Uses hash if track_id missing