Both of you need to make promises that can be kept. Don't ask him to make promises that he can't keep, but together, try to find ones he can keep. He cannot promise to never slip up again, so don't ask him to do that because it sets him up for failure and sets you up for disappointment. Find what you both can promise and keep your promises. These are not situational promises or negotiations. It cannot be "I promise to not get mad as long as....". Keep your promises in good faith and with love.
What can he promise? Can he promise to be honest with you?
What can you promise? Can you promise to not get angry when he slips? Can you promise to not give up on him?
See if he can promise to be honest about when he slips up. See if you can promise to not be angry. He will be more honest with you if you are loving and supportive when he stumbles. It might take every ounce of strength you have to not get mad, but remember that it is taking every ounce of strength he has to talk to you.
When he stumbles, remember that he is ashamed, humiliated, self-hating. You need to be his safe place. You cannot hate him, or punish him more than he already does that to himself.
In the end, you are both only truly accountable to your Father in heaven. If you make promises, you are accountable for how you keep them. He will not accept excuses or justifications.
I, the Lord, am bound when ye do what I say;
but when ye do not what I say,
ye have no promise