The best time to solve the defect is ?Now?. As soon As possible.
Nobody can tell at what phase the defects comes. As soon as the defect comes, it is better to rectify it as soon as possible. It will help in budget, time constrains and quality.
I think the best time to solve the defect is at that point on which defect met.after getting a defect no need to wait to grow try to remove it as early as possible.
if defect solves in requirement phase it is more useful to solve it in that phase if it found in planning phase try to remove in that phase. if it grows it more expensive for software and also for company operate it