There's a technique I've found useful when dealing with difficult requests. Often this comes up in a business setting, but not exclusively. A lot of business types tend to deal in abstractions of value, which is usually fine as long as you can convert everything into the right units. However, sometimes there are essential mechanical reasons why something is impossible, and you have to deal with that in the concrete, rather than the abstract.
Usually you don't get presented with an impossible situation all at once, instead you get one requirement first and another conflicting requirement later. Then the problem is you're in a difficult situation because you have to say no to this new requirement, or you say yes and then can't deliver it. What's happened is you have inadvertently been shifted into a decision-making role by proxy. This smaller decision (technical requirement A vs technical requirement B) is really reflective of a higher-level decision (business need X vs business need Y).
The problem is that while it's obvious from your perspective that A and B conflict, it's not obvious from a business perspective that X and Y do. And turning around and saying "sorry you can't have B (and therefore Y)" just makes you sound obstructionist. Instead, I recommend hoisting that decision up into the higher level, and pushing it back on whoever asked for it. That way, instead of being responsible for saying yes or no, your job is just to explain the tradeoffs and leave that responsibility to the people making the decision.
I find decision hoisting can be pretty useful in everyday life. In some cases, your answer to a request might just be "no", but it's more often "it depends on the circumstances". I once had a friend ask me to go to a party that I didn't really feel like going to. I put the decision back on him by saying I'd only go if he drove me. He put the decision back on me by saying he'd only drive me if I paid for the petrol. I agreed with that and we both got what we wanted, though the decision had to go through a few domains to get there.
The main benefit of decision hoisting isn't that it stops you from being responsible for decisions, but that it moves decisions into the domain they should be in. Business decisions shouldn't be made at a technical level. Instead, the technical realities inform the business decision. Doing it that way means you can make better decisions, because you don't eliminate legitimate options by saying "no" prematurely.