1 ) Fatal bugs
This usually happens when new features are introduced causing impact on another part of the app.
2 ) Poor front-end optimization
Using resources effectively is the key. Although image compression and similar strategies do help, developers have to be careful of the relationship between what’s happening on-screen and what the devices are capable of handling.
3 ) Browser incompatibilities
Browser problems don’t happen only on a desktop. So far, Apple has done a good job with the mobile version of Safari, but when apps interact with Chrome or other browsers, problems do tend to appear due to the lack of thorough testing.
4 ) Device incompatibility
With Android being present on such a huge number of devices, it becomes almost impossible to test the app on every single one of them. Even iOS has got some amount of fragmentation.
5 ) Unoptimized database
Performance can be severely dragged down by bad queries and excessive sessions. Be sure to properly optimize and index your database, otherwise it’s going to perform poorly giving the user the impression that the application is not responding.
6 ) Poor connection
Lots of users reach a spot where they have poor connection. This may cause an application to behave funny or even crash. Most developers don’t give attention to this aspect, but apps tend to freeze because they “don’t know” what to do with the amount of bad data they retrieved.
7 ) Incorrect CPU and memory usage
Again, the huge number of different devices, each having different capabilities, may cause abnormal behaviour. An app designed having the iPhone 5’s capabilities in mind, may have problem running on a earlier version, with a slower CPU and less memory.
8 ) The demand exceeds the supply
It rarely happens, but a huge amount of people may simultaneously discover your app at the same time.
9 ) Network change
Switching from a WiFi to cell network and back can cause the device to loose the connection for a brief moment, which will affect app stability.
10 ) No updates
If the app periodically updates, it’s usually a good idea to keep pace with the updates. Having a very old version, your app may not recognize some fresh added features.