How do issues like this happen? I'm fairly new to software development and I haven't really seen issues like this, and I'm having trouble thinking of what types of code would cause it.
I'm assuming it's usually related to things using multiple threads or at the boundaries of different programs communicating?