There's always a reason, sometimes its hard to find it. (did you know that 2 plus 2 times 4 is always ten?) This is where a maintenance agreement with Camsoft is worth its weight in gold. If you take the time to do a bit of research and fact gathering they will really come through.
You want to learn to use the logfile feature and catch a machine log right when the machine misbehaves.
Another feature I find useful is a ton of messages in my code that can be activated with a user defined button. My button "full messaging" just changes variable \140=1 Then there's lines all over like this one:
IF \140=1 THEN MESSAGE . Start of RapidPercent
The whole key here is to find the exact line that is executing when the machine doesn't do your bidding. That and a logfile will make troulbe shooting easier.