From the problem Unbounded master problem in Benders decomposition, it can happen that after adding cuts the master problem is still unbounded. The answers in the post suggest adding bound for the objective or variables to solve the unboundedness.
I found that the reason why unboundedness makes benders fail is that sometimes the solver returns the same solution before and after adding cuts since the master problem with cuts is still unbounded. I think it can also happen when adding bounds to the objective or variables since there's no assurance that the lower bound will be better with more cuts, which means more cuts don't guarantee a different solution to the master problem.
I know there're some techniques like restarting to jump from incumbent to new solutions, but these techniques seem to have no guarantee.