my gut feeling is that folk who cancel wont change their minds even if i bow and ask forgiveness/free clean or discount scenario (which iv never done before)
however i might be handling it the wrong way by just moving on after a shrug of the shoulders
In general, try not to think with your gut.
If you see it from their perspective, something's been wrong enough that they have plucked up the courage to tell you not to come. If, in return, you just say "cheerio" then that's fine. If, however, you deal with their problem and resolve it you may have a customer for life who recommends you as the guy who, even though he made a mistake, dealt with it.
If you see it as "bowing and asking for forgiveness" you'll never do it. The conversation will run "I'm so, so sorry, can you forgive me, have a free clean" and it'll be humiliating.
If you see it as dealing professionally with a problem, it's all pretty straightforward. "Hi, it sounds like we made a mess of your last clean. First of all, thanks for letting us know; we assume we're getting it right, so hearing where we're getting it wrong really helps. I know it's tempting to cancel but it sounds like we've been getting it right so far, so how about we pop along and have another go? What I'll also do is point out to the team where they are going wrong so we can make the service better for everyone. Hopefully it'll be right and will carry on being right"
One's abject creeping and the other is businesslike friendliness that resolves the problem they have, namely dirty windows. And if it isn't really the quality of the clean they won't want you to "fix" it so you'll know.
Vin