Without naming and shaming what was the problem with the client if you don't mind me asking.
With out going into details.
There were problems that escalated to a point at which we decided it was better for our mental health to walk away.
It really highlighted two things
- Having a contract with strong terms of trade is of utmost importance.
- Get paid before the site goes live.
I hear you, I find that most issues boil down to miscommunications and mis matched expectations. Sometimes it is unavoidable as some people look you right in the face and nod when they have no idea what you are talking about and once you build it they say "that is not what I wanted". Also some clients think because you build something for them you are on call 24/7 for anything including "why is their computer going slow"
I'm sure everyone knows you need to put everything on paper in advance, explain payment terms, warranty periods, be firm on scope changes (that you don't do them or they cost). If you do something for free, let the client know you are doing it for free or it is out of scope otherwise they wont know what costs money and what does not.