If the debugger fails to restore the original instruction, then the software breakpoints remains and causes a target halt when it reaches that instruction. The problem might be caused by a board or some hardware problem. In such case, the debugger breakpoint list might gets corrupted too. To solve this problem it is best to reload the application to the target.