modify done, fail callback trigger timing