Environment Errors
Finally, there are many potential sources of chaos that are seemingly invisible until they're not, which has to do with how, where, and when your program is run rather than what its purpose is.
This might manifest as an error you've never seen before because someone's DNS server on the other side of the world was misconfigured, or a program that simply won't boot up at all without recompiling Ruby because somehow your operating system broke your OpenSSL setup for the 37th time. Or because you hopped on a plane and can no longer access a service that was region locked.
Some of the most frustrating and hard to debug problems lurk in this category. But it's what makes our work an engineering discipline, and is just part of the job.