Part of the problem of course is that a non-trivial automation system is already somewhat complex when you throw in all of the environment issues that can come into play. Often it is the environment or setup or pilot error, and we spend a lot of time trying to figure that out. Before spending a lot of time digging into it, it's good to know that it at least still manifests itself within a fairly Plain Jane setup, since that makes it a lot more likely that it really is our problem, and we don't waste a lot of time digging where there's nothing to be found.
Of course we try to learn from such situations and update the product to deal with them if it was a lacking on our side, or at least better report the problem so that we can diagnose environmental issues. But the number of potential scenarios are legion so it's always a bit tough. We just went through one with Brendon, which involved code in some drivers that had been there for probably a decade or more in some cases, but it turned out to be an issue in multi-homed systems. Apparently he's the only customer with a multi-homed system in all this time. But live and learn, and that one should be taken care of now.
It's a balance that has to be maintained. Though I think that we do ultimately put in more than due diligence when someone reports an issue, and try to never just dismiss it out of hand as not our fault, even if we do want to have some assurance that it's likely that it is our fault, and to have some divide and conquer testing done to try to limit the problem to a reasonably targeted section of the code. And of course sometimes it's not always practical to try to deal with it immediately, if it would have the potential to destabilize the product at a crucial time (aka close to a release.)