When the solution is blocked by the diagnosis of the problem, and there is no methodology or algorithm for the diagnosis, I usually resort to a sort of "grid-search", i.e. brute force through the problem space. I once had a weird off-by-one pointer problem in circular buffer in a C++ multi-threaded environment (it was almost 20 years ago), and I had to systematically eliminate code block by code block as possible origin, until I got to a block small enough for me to throw my entire intellect at. I solved it.
I once explained this to an audience using a riddle: "How far can you walk into a forest?" That type of riddle has no method or algorithm for solution. The answer usually "comes to you" or doesn't. But knowing that riddles depend on a play on words or different meanings of words in different contexts, I suggested that one can analyse each word at a time: e.g. "you vs. someone else?", "walk vs. some other way of moving?", "into vs. out of?", "why specifically a forest?" etc. The answer, of course, comes from "into vs. out of" -- you can only walk into a forest till the mid point. After that you're walking out. Not an ideal example, but I always remember it when I'm faced with an intractable problem.
The method also helps stay motivated because there's a sense of progress: you're racking up a count of things that are definitely not the cause of the problem.
I once explained this to an audience using a riddle: "How far can you walk into a forest?" That type of riddle has no method or algorithm for solution. The answer usually "comes to you" or doesn't. But knowing that riddles depend on a play on words or different meanings of words in different contexts, I suggested that one can analyse each word at a time: e.g. "you vs. someone else?", "walk vs. some other way of moving?", "into vs. out of?", "why specifically a forest?" etc. The answer, of course, comes from "into vs. out of" -- you can only walk into a forest till the mid point. After that you're walking out. Not an ideal example, but I always remember it when I'm faced with an intractable problem.
The method also helps stay motivated because there's a sense of progress: you're racking up a count of things that are definitely not the cause of the problem.