For anyone struggling with this, two hints that might help you frame your role better:
Listening is the solution. By trying to solve what your SO told you, you are actually trying to solve the wrong problem. Their real problem is that their brain needs to say things aloud to someone in order to correctly process it's own thoughts. Therapists make a frickin' living off of that quirk of our brains and it's the actual problem they come to you with. Even better: By listening you can not only advise on solutions, you can be the solution! Neat, huh?
Listening and solving aren't mutually exclusive. If you stick to listening first, your SO might actually come to a point where your advice is wanted. Pro tip: Once their thoughts slow down, ask if they want to hear what you think about the issue. From my experience, the answer will be "yes" very often. That way, your thoughts will actually reach your SO and not get blocked by frustration outright. Yet, as with everything else: No means no. So if you get a no, don't try again, shut the fuck up, alright?
Or yet another way to look at it is that when people are venting it's not the actual problem that they're venting about it's the uncomfortable emotions that come about as a result of problem. Very usually, someone is doing something that makes their lives harder but it is within a very specific environment, e.g. work, school, some kind of committee, where there are rules against settling disputes by right of arms. So even though I might have a really elegant solution for 'solving' that particular dispute, what I tend to be listening to long term tends to be, 'Coworkers... can't live with 'em, can't kill 'em'. To which the correct answer is obviously not 'You could solve that problem with Piranha Solution - removes organic material from the substrate', it's 'Yes, we do have to put up with annoying people for a long time sometimes.'