My bf has been having a string of bad days lately and I feel like it's my fault. He's either depressed, anxious, or frustrated but he doesn't tell me until I manage to do something to upset him. He then lashes out at me, tells me that he's already having a bad day, and then breaks down the reasons why I made his day worse. This leads me to believe that I'm the cause of his bad days.

For example, a few days ago, he seemed to be having a good day. I was painting something for him and I was testing out how some colors would look together. Then I accidentally broke an easily fixable piece of the project. When he saw my work in progress and the broken piece, he raised his voice at me. He said he didn't like the colors I had chosen, verbally tore down the progress I had made piece by piece, and said that his day was ruined and that I had wasted money on the paints I had used. He later apologized.

Tonight, I accidentally set my phone in some water (I know, it was dumb and I should look where I put things) and now my external speaker isn't working. When I panicked, thinking that I had completely ruined my phone, I told him what happened and he raised his voice at me. He said he can't imagine doing what I did, even though it was an accident. He made me feel so stupid and inconsiderate. What makes this so much worse is that after a few minutes he was over it. It's like nothing even happened.

The lashing out has only been going on for about a month. He apologizes everytime and talks about wanting to go to therapy and anger management, which I support 100%. I just don't know what to do to make things better/easier for him. I feel like I'm walking on eggshells around him and that I also deserve to be yelled at. I'm worried that I'll mess up again and that he'll leave me or that I should just beat him to the punch and leave him first so that he won't have as many bad days. He's my Favorite Person and I just want him to be happy.

TL;DR my bf yells at me and only tells me that he's having a bad day after I do something that makes him upset, thus making me feel like I'm the cause of his bad day.