Occasionally an issue presents itself that requires more than a simple tweak to fix. Sometimes these issues require totally rethinking my view of the problem. I find enjoyment in problem-solving.
On the rare occasion that a problem lies within a tool or library I'm using, at the very least I can usually raise it as an issue somewhere. In some cases I have been able to fix the problem myself and submit a pull request for it.
Sometimes frustration happens. I find it helps a lot to walk away from my desk for a few minutes, and come back later with fresh eyes and a clear head. Talking through a problem with someone else often highlights flaws in my logic.