Typically, by the time an application or some system software is running on a server, it has been well tested in a test environment, run in a simulated production environment, and released to the production environment under close monitoring. Well, okay. Perhaps not all software goes through such a rigorous test and trial process as this, even though they should. Besides errors in logic, programming structure, and interfacing, what looks like a software error could be a hardware fault reflecting through a piece of software. Or, the software may be incompatible with the platform on which it's installed.
Software problems aren't the sole domain of application software. Problems and errors can be the result of misconfigured, improperly installed, or incompatible system software, device drivers, utility software, and even diagnostic and analysis software...