For me its the point 2 that is most relatable. Every time I have to use a library, even C++ STL beyond the oft used portions, or learn a new framework or language, my heart sinks a little anticipating the impending path of thorns. I have had so many encounters where it is literally a pain in the neck from all the peering into the screen trying to see just what the heck is not working, or eye burn from staring into the monitor squinting at the debugger window with small fonts, or both of this along with sore and sweaty fingers out of frantic googling that I shudder just writing about it. I call this "wrestling with the API". Its an occupational hazard for us to deal with all the man made pieces of software that are as different as their creators, and I have made my peace with it.
It usually turns out that I missed a fine detail in the documentation. Sometimes its my fault where I wouldn't have read the docs properly or have made uncalled for assumptions, and other times its squarely the documentation's fault for being unhelpful. When its my fault, I feel really disappointed with myself for having been so careless despite being an experienced dev. That adds to the frustration. Almost every time, stackoverflow has bailed me out, and invariably it would be an old post. (At times when I find a solution to something seemingly insurmountable, I have even mused about donating some money to them.) I take solace in the fact that someone had faced similar problem long before me and I need not be so harsh on myself. That until it happens again.