7 most common bugs in mobile apps

October 15, 2024
Published
11 minutes
Reading time
Bugs and Testing
Category

Creating apps with a smooth, bug-free experience is an ideal that all software development teams aim to reach.

After all, users have high expectations, and even minor glitches can send them running to your competitors. 

But, despite our best efforts, some types of bugs seem to pop up again and again.

Whether it’s due to tight deadlines, complex code, or the ever-growing variety of devices, certain bugs have a way of sneaking into our apps. 

In this article, we’ll highlight seven of the most common bugs that you may encounter. 

We’ll break down what they are, why they happen, and, most importantly, how to avoid them.

Let’s get started.

App crashing after button tap

Let’s start with one of the most frustrating bugs for users: unexpected app crashes. 

What we’re talking about here is when an app suddenly closes or stops working without warning, often in response to a specific action, like tapping a button or trying to load a screen.

Crashes can occur for various reasons, from problems with a user’s network device memory to compatibility issues.

But, while crashes are a serious concern, the good news is that they’re becoming more rare.

A 2023 report by Embrace found that both Android and iOS apps have high crash-free rates, with even the most crash-prone app categories experiencing crashes less than 1% of the time. 

Illustration: Shake / Data: Embrace

This sets a high bar for app stability.

But, one challenge with crash-related bugs is that they can be difficult to pinpoint. 

Users often don’t know exactly what triggered the crash, making it hard for them to report the issue accurately.

That’s where a bug and crash reporting tool like Shake comes in. 

It makes it easier for developers to understand the source of a crash by providing insight into the user’s activity leading up to it. 

In fact, Shake’s Black Box feature automatically collects valuable data and a detailed environment profile 60 seconds before a ticket is submitted.

Source: Shake

This data includes information like CPU usage, memory usage, available disk space, and much more. 

After a crash, users are prompted to send feedback to your team, and all of this information will be included in their bug report

So, with tools like Shake, developers can quickly identify, analyze, and resolve crashes, ensuring a smoother, more reliable app experience.

Get unreal data to fix real issues in your app & web.

No landscape mode optimization

Even with a crash-free app, ensuring a consistent user experience across different device orientations is essential. 

Unfortunately, many developers overlook landscape mode optimization.

In apps that allow users to switch between portrait and landscape modes, changing the phone’s orientation can lead to unexpected behavior. 

Elements might disappear, new ones might appear, or the layout might become distorted, disrupting the user experience.

A 2017 research paper that investigated this issue found that a staggering 88% of tested apps had GUI (Graphical User Interface) problems when the device orientation changed.

The issues they saw typically occur during orientation changes are shown below.

Illustration: Shake / Data: Wiley

These GUI changes can be frustrating for users, especially when they’re in the middle of a task, such as filling out a form or reading important information. 

Imagine losing your place in a long article or having a crucial button disappear just as you’re about to tap it!

The paper highlighted three specific issues as the most frequent:

  • Disappearance of dialog objects or context menus
  • Incorrect scroll position
  • Loss of the current state of text boxes

Knowing these common problems allows you to focus your testing efforts, which can be optimized even further by using tools like BrowserStack.

Source: BrowserStack

Tools like this one allow for testing landscape orientation on many devices with different screen sizes and resolutions, ensuring your app’s interface remains consistent throughout.

Only through detailed testing can developers identify and address orientation-related issues before they reach end-users, ensuring a more consistent and polished app experience.

Button functionality issues

Whether it’s submitting a form, making a purchase, or navigating between screens, buttons play a crucial role in shaping the user experience. 

That’s why any button issues can significantly disrupt the functionality of your app’s features and even drive users away. 

There’s nothing more frustrating than trying to perform an essential action within an app only to find that the button simply doesn’t work. 

This problem is especially important for bookings or online purchases, where a broken button prevents users from proceeding. 

However, just as problematic is the absence of an essential button.

This was the experience of UI/UX designer Chonga Korala when attempting to cancel an Uber ride. 

Korala shared the following on LinkedIn:

“Unfortunately, there was no option to cancel the ride. Instead, there was a button for Ride details, but it looked like a disabled button… and it appeared to be inactive.”

Not only was the Cancel button missing, but the only button present appeared to be disabled, further hindering the user experience. 

A quick look at Uber’s brand template reveals how this confusion might arise.

Greyed-out buttons are usually associated with a disabled app element so it’s no wonder a user could get confused.

In other words, buttons should not only be present on essential screens.

They should also be designed in a way that clearly communicates their functionality.

So, pay attention to these details and ensure your buttons are visually clear, functionally reliable, and placed intuitively.

User preferences failing to save

Users love to customize their app experience, especially for apps they use frequently.

But, a common issue is these preferences fail to be saved. 

Let’s take a look at the types of preferences we’re talking about.

Source: Shake

While some settings might be purely cosmetic, others are crucial for app functionality. 

Even more critical are accessibility preferences, such as text-to-speech or high-contrast mode. 

For some users, these are essential for using the app at all.

There are several reasons why user preferences might not save correctly:

  • Caching problems
  • Cloud synchronization issues
  • Incorrect storage of preferences
  • App crashes before a save
  • System updates resetting preferences

What usually happens is that users quickly change an app setting while offline and don’t leave enough time for the new settings to be synced.

Luckily, safeguards like caching can be implemented, which allows the app to store preferences locally.

If that’s not an option, prominent error messages should be shown when preferences aren’t saved properly.

Source: Shake

This message can inform the user that they either need to check whether they did everything right on their end or that they need to wait for any network or server issues to pass. 

Overall, ensuring that user preferences are saved by implementing safeguards and through clear communication is key.

Audio/video malfunctions

Many popular apps rely heavily on multimedia features, whether it’s for entertainment, communication, or a core functionality. 

Think of social media platforms like Instagram or TikTok, video conferencing apps like Zoom, or even educational apps with video tutorials.

When audio or video malfunctions occur, it can be a major disruption. 

The issues we’re talking about include audio or video content lagging or stuttering, abrupt stops, or even some content not being able to play at all, as shown below.

Source: Reddit

Of course, sometimes, video malfunctions are unavoidable.

For instance, if a user tries to play an unsupported file type or an incredibly large-sized video for a particular device, problems are bound to occur. 

Here, we’re specifically talking about situations where the app should support the media format but still experiences malfunctions.

In these cases, there are several potential issues to investigate. You can see them outlined below.

Source: Shake

Compatibility issues can arise if the app doesn’t support the specific codecs or formats used in the audio or video file, while memory leaks happen when an app fails to release memory properly, eventually leading to a decrease in media performance over time.

Threading problems occur when the app doesn’t handle the different threads responsible for audio/video processing efficiently, causing delays or interruptions. 

Playback state management refers to how the app tracks and controls the playback process (pause, resume, seek), as bad design or errors in this area can lead to unexpected behavior and disruptions like long content skips and buffering. 

Finally, inadequate error handling can result in videos or audio failing to appear properly after any app issue or crash.

Thoroughly testing multimedia functionality is essential for preventing these issues and ensuring your app’s content runs smoothly.

Very handy for handling user feedback. CTOs, devs, testers – rejoice.

Excessive permission requests

Now, let’s turn our attention to an issue that can significantly impact your app’s security and reputation: excessive permission requests.

When an app asks for more permissions than it truly needs, it raises red flags for both users and app stores. 

Cybernews investigated 50 popular Android apps on the Google Play Store, analyzing their Manifest files which describe an app’s components, permissions, and other details. 

The results were alarming.

Illustration: Shake / Data: Cybernews

Popular apps like WhatsApp, Facebook, Instagram, TikTok, and X (formerly Twitter) were found to request many potentially dangerous permissions. 

These are permissions that, if misused, could compromise user privacy or security. 

Some examples of these permissions include the following.

Source: Shake

So, why should this concern you as a developer? 

Firstly, requesting unnecessary permissions can lead to your app being blocked from app stores due to security risks. 

Even if your app makes it to users’ devices, excessive permission requests can make it seem untrustworthy, potentially leading to negative reviews, lower adoption rates, and even user churn.

During development, it’s easy to overlook the accumulation of permissions as new features are added. 

However, it’s crucial to regularly review and justify each permission your app requests, and definitely avoid asking for highly suspicious permissions.

For instance, Comparitech’s research on 2,500 apps found that 72 of them had the ability to run scripts programmatically. 

This means that these apps could potentially be used to install malware, steal data, or even take control of the device.

All in all, developers must carefully consider each permission they request, ensuring it’s essential for the app’s core functionality and clearly communicating to users why it’s needed. 

Push notification errors

Lastly, let’s talk about push notification errors, which can be a major source of frustration for users when they don’t work as expected.

Push notifications can be tricky to get right because they involve a complex interplay between different components. 

Essentially, when an app wants to send a notification, it first needs to get permission from the user and register with a push notification service (like APNS for Apple devices or Firebase for Android). 

Then, the app’s backend server sends the notification to the service, which in turn delivers it to the user’s device.

As shown in the next illustration, problems can arise at various points in this process.

Source: Shake

Incorrect device tokens, server errors, network issues, or even the user’s notification settings can all disrupt the delivery of push notifications.

So, it’s crucial to be mindful of these potential issues to ensure important notifications reach users reliably. 

Why?

Because missed notifications can have significant consequences, such as users missing appointments, failing to receive critical alerts, or simply feeling disconnected from your app.

On the other hand, excessive or poorly timed notifications can also lead to a negative user experience. 

Push notifications should always respect user preferences, whether it’s the specific notification settings within your app or more global settings like Do Not Disturb or Silent mode on the device.

Even popular apps occasionally have issues here, where notifications either ignore preferences, are sent multiple times, or even bypass device rules, as shown in the example below.

Source: Reddit

Users can quickly become annoyed with notifications that pop up at inappropriate times or are difficult to dismiss.  

This can lead to them disabling notifications altogether or even uninstalling the app because of these bugs.

To avoid these pitfalls, developers should thoroughly test their push notification system, carefully consider user preferences, and prioritize sending only relevant and timely notifications.

Conclusion

And there you have it—a closer look at some of the most common bugs that can make their way into your mobile apps. 

We hope this overview has helped you better identify these issues and provided helpful tips for managing them.

By understanding these common bugs, dev team leads can guide their teams toward better coding practices and more robust testing strategies. 

Not only that, but testers can improve their testing approaches, and even product managers can better understand potential development challenges. 

In other words, this knowledge helps everyone.

So, keep this guide handy, and work to build polished, less buggy apps.

About Shake

From internal bug reporting to production and customer support, our all-in-one SDK gets you all the right clues to fix issues in your mobile app and website.

We love to think it makes CTOs life easier, QA tester’s reports better and dev’s coding faster. If you agree that user feedback is key – Shake is your door lock.

Read more about us here.

Bug and crash reporting tool you’ve been looking for.

Add to app in minutes

Doesn’t affect app speed

GDPR & CCPA compliant