Personally my worst nightmare as a coder is dependencies and upgrade paths. Every single platform has the same problems because that's the nature of entirely independent pieces of software being updated independently, however some projects mitigate this better than others.
I currently have a system that fortunately I am going to be replacing in its entirety, but it's an old Rails 3 application with a *lot* of 3rd party dependencies - some of them being forks of old versions of libraries - and every now and then I am asked to change something or to add a small feature or two to keep us going until the new system is ready to take its place. However a "small" change in this system is an *absolute nightmare* and I have to constantly work around bugs in libraries that I cannot update because updating them requires updating others, which requires updating others, which requires updating others, which more often than not requires updating Rails itself - which then requires rewriting a *ton* of code because of the differences between Rails 3 and newer versions.
Code can be written in a way that it is less sensitive to these sorts of problems, but more often than not it's a problem that is ignored until it occurs (and by that time it's often too late).