I can only really see a few possibilities here:
1. Lack of knowlege in the team.
2. Being asked to do something too quickly (or the technical team not asking for enough time up front).
3. Being asked to do something dumb and giving in.
The second point happens everywhere to varying degrees, so I just see it as part of the job description of being a developer. You will always have to fight for more time since everyone who requests you to build something wants their software features now and not tomorrow. Points 1 and 3 can usually be solved with better communication and some education.
All of these problems are solvable assuming the management of the team understands these problems occur and is on the same page as the people implementing the software. If that isn't the case and the management isn't going to listen to the devs, I think that is one of the few situations where it is time to just find a new job. Possibly this is more common than not and I have been lucky enough to only experience one manager who was this stubborn and ignorant.