Every now and then you get a phone call that goes something like this "That code you wrote for us a year (or more) ago doesn’t work anymore. We were thinking of doing more work with you but if we can’t get this fixed we may have to go with someone else." The proper answer is "No problem. That will be $x per hour to troubleshoot since we do not currently have a contract." The real answer is usually "ok. I’ll look into that real quick." because a) you know darn well the real answer will send them packing b) you are a nice guy and like them and c) you haven’t yet reached a level of financial stability to be blowing off customers (note: you’ll fix c if you use the real answer more often).
When your code doesn’t change and after a length of time it suddenly doesn’t work, the problem is almost always with the web host or the client. Sometimes they have discovered a very well hidden bug but rarely. In my case, the permissions on the directory which the application used to upload files had changed to not allow for uploading. How do permissions magically change? They don’t.