Pretending that all discussions are going to be resolved amicably ignores ego, laziness, resistance to change, dislike of being publicly gainsaid, unwillingness to admit to mistakes, obsession with what's cool and so on.
These are never going to go away. The very best managers can take these conflicting concerns, balance them, and make a choice while explaining to all that yes, what they said is interesting and important but no, they don't always get their way.
The less good managers, i.e. most of them [us - I used to be a manager, but I wasn't very good at it] lack that ability and so arguments rumble on, grudges fester and somewhere along the line, someone who might be a sweetheart most of the time will take malicious glee in screwing things up.
It's better to expose everyone to the full business context so that they understand what the priorities are (within reason). From experience, engineers and scientists aren't always training themselves to consider business value. Sometimes it requires a step back to say, even though this is worse from an engineering perspective it's better from a business perspective. We're all here to serve the business, so let's do what's right for the business. Software doesn't exist to serve itself.
Maybe we know how to engineer and manufacture the best widget in the world, but the widget market is falling off, and we need to build a wamboozle instead.
People understand this stuff. The failure is often a failure to explain it.
Then you should seriously rethink whether the way you handle your project is good. Either you convince your team, or they convince you. If you have to fall back to the power your position gives you, either your angle is wrong or you fail to communicate. Either way, the problem is never the people, but you.
PS: I learned that the hard way and I am incredibly grateful to all those people in my teams who openly told me.