Incident: iOS 9.3.1 Update Fixes Link Handling Bug Causing Device Lockups

Published Date: 2016-04-01

Postmortem Analysis
Timeline 1. The software failure incident happened when users updated to iOS 9.3, which launched on 21 March [41987]. Therefore, the software failure incident happened in March 2016.
System 1. iOS 9.3 (specifically the Universal Links system) 2. Third-party apps, including Booking.com app
Responsible Organization 1. Rogue third-party apps, including Booking.com, using large lists of URLs within Apple’s Universal Links system [41987]
Impacted Organization 1. Users of iPhones and iPads [41987]
Software Causes 1. The software causes of the failure incident were: - Rogue third-party apps overloading a core component of iOS that handles links within apps [41987].
Non-software Causes 1. The use of incorrectly formatted lists of URLs by apps like Booking.com, which were too large and complex, causing the Universal Links system to break down [41987].
Impacts 1. Devices locking up, batteries draining, and links becoming inoperative [41987]
Preventions 1. Proper testing and validation of third-party apps' integration with Apple's Universal Links system could have prevented the software failure incident [41987]. 2. Implementing stricter guidelines or limits on the size and complexity of URL lists within apps using the Universal Links system could have helped prevent the issue [41987]. 3. Regular monitoring and auditing of app behavior and performance post-update could have detected the problem earlier, allowing for a proactive fix before widespread user impact [41987].
Fixes 1. Removing the massive database of URLs from the Booking.com app [41987] 2. Updating to the latest version of iOS 9.3.1 through the Settings app on an iPhone or iPad, or through iTunes on a Windows or OS X computer [41987]
References 1. Users updating to iOS 9.3 [Article 41987] 2. Booking.com app [Article 41987] 3. Apple [Article 41987]

Software Taxonomy of Faults

Category Option Rationale
Recurring one_organization (a) The software failure incident related to the bug causing devices to lock up, drain batteries, and render links inoperative happened again within the same organization, specifically with the Booking.com app. The app had incorrectly formatted lists of URLs, which led to the problem in the iOS system. Booking.com had to update its app to remove the massive database of URLs to address the issue [41987]. (b) The software failure incident involving the bug affecting iOS devices due to rogue third-party apps overloading the core components of iOS has not been explicitly mentioned to have occurred at other organizations or with their products and services in the provided article.
Phase (Design/Operation) design (a) The software failure incident described in Article 41987 was primarily due to a design issue. The problem was traced back to rogue third-party apps, such as Booking.com, using large lists of URLs within Apple’s Universal Links system. These incorrectly formatted lists of URLs, particularly in the case of Booking.com, were significantly larger and more complex than usual, causing the Universal Links system to break and leading to the malfunction of iPhones and iPads. This design flaw in how the URLs were handled within the system contributed to the devices locking up, batteries draining, and links becoming inoperative [41987]. (b) The operation of the system itself did not seem to be a direct cause of the software failure incident reported in the article. Instead, the issue stemmed from the design and implementation of the Universal Links system and how third-party apps interacted with it. Users updating to iOS 9.3 triggered the problem as the system re-catalogued the links and their associations with apps, revealing the design flaw in handling the URLs within the system [41987].
Boundary (Internal/External) within_system, outside_system (a) The software failure incident described in the article is primarily within_system. The issue was caused by rogue third-party apps, specifically Booking.com, using large lists of URLs within Apple’s Universal Links system. This caused the iPhone or iPad to go into a constant loop and rendered all links inoperable across the system. Apple had to push out an update to fix this problem [41987].
Nature (Human/Non-human) non-human_actions, human_actions (a) The software failure incident in this case was primarily due to non-human actions. The issue stemmed from rogue third-party apps, particularly Booking.com, using large lists of URLs within Apple’s Universal Links system. These large and incorrectly formatted URL lists overloaded the core components of iOS, causing the devices to lock up, drain batteries, and render links inoperative [41987]. (b) Human actions were also involved in this incident as Booking.com, one of the apps responsible for the problem, had incorrectly formatted lists of URLs, which contributed to the failure. However, the root cause of the failure was the non-human action of overloading the system with these large URL lists [41987].
Dimension (Hardware/Software) software (a) The software failure incident in Article 41987 was primarily due to a software issue rather than hardware. The problem was traced back to rogue third-party apps, specifically the Booking.com app, using large lists of URLs within Apple’s Universal Links system. This caused the iPhone or iPad to go into a constant loop and made all links inoperable across the system. The issue was related to the way the software handled the large and incorrectly formatted URL lists, leading to the failure [41987]. (b) The software failure incident in Article 41987 was caused by contributing factors originating in software. The bug that caused devices to lock up, batteries to drain, and links to be inoperative was a result of the way iOS handled links within apps from Safari, Mail, and Messages to third-party apps. The issue was specifically related to the Universal Links system and how apps like Booking.com had incorrectly formatted lists of URLs, which overwhelmed the core components of iOS, leading to the failure [41987].
Objective (Malicious/Non-malicious) non-malicious (a) The software failure incident described in Article 41987 was non-malicious. The issue was caused by a bug in the iOS system related to how third-party apps handled links, specifically due to incorrectly formatted lists of URLs within the Booking.com app. This bug led to devices locking up, batteries draining, and links becoming inoperative. Apple identified the problem and pushed out an update to fix it, indicating that the failure was not due to malicious intent but rather a technical flaw in the system [41987].
Intent (Poor/Accidental Decisions) poor_decisions (a) The software failure incident described in Article 41987 was primarily due to poor_decisions. The issue stemmed from apps, including Booking.com, using large lists of URLs within Apple’s Universal Links system, which overloaded one of the core components of iOS. Booking.com had incorrectly formatted lists of URLs, with a database size of 2.3MB, significantly larger than the usual size for such databases. This poor decision to have such a massive and complex URL list broke the Universal Links system, causing iPhones and iPads to lock up and rendering links inoperative across the system [41987].
Capability (Incompetence/Accidental) accidental (a) The software failure incident in Article 41987 was not attributed to development incompetence. Instead, it was caused by a bug related to rogue third-party apps overloading a core component of iOS that handles links within apps, specifically due to incorrectly formatted lists of URLs within these apps like Booking.com. (b) The software failure incident in Article 41987 was accidental in nature. It was not intentional but rather a consequence of the size and complexity of the URL list within certain third-party apps, such as Booking.com, which broke the Universal Links system in iOS, leading to devices locking up, batteries draining, and links becoming inoperative.
Duration temporary (a) The software failure incident described in the article was temporary. The issue was caused by rogue third-party apps overloading a core component of iOS that handles links within apps, specifically due to incorrectly formatted lists of URLs in apps like Booking.com. This led to devices locking up, batteries draining, and links becoming inoperative. Apple pushed out an update (iOS 9.3.1) to fix the problem, indicating that the failure was not permanent but rather resolved by addressing the specific contributing factors introduced by certain circumstances [41987].
Behaviour crash, omission, other (a) crash: The software failure incident described in Article 41987 resulted in iPhones and iPads locking up and becoming inoperative due to a bug caused by rogue third-party apps overloading a core component of iOS that handles links within apps. This led to the devices going into a constant loop and making all links inoperable, essentially crashing the system and preventing it from performing its intended functions [41987]. (b) omission: The failure incident also involved the system omitting to perform its intended functions, specifically in handling links within apps from Safari, Mail, and Messages to many third-party apps. Due to incorrectly formatted lists of URLs in certain apps like Booking.com, the system failed to properly process the links, leading to the omission of expected functionality and causing user frustration [41987]. (c) timing: The software failure incident did not involve a timing-related failure where the system performed its intended functions too late or too early. Instead, the issue was more focused on the system's inability to handle the overload of URLs and the subsequent impact on the device's performance [41987]. (d) value: The failure incident did not result from the system performing its intended functions incorrectly in terms of producing incorrect outputs or results. Rather, the problem stemmed from the system being overwhelmed by the large and complex database of URLs, causing it to malfunction and lock up [41987]. (e) byzantine: The software failure incident did not exhibit a byzantine behavior where the system behaved erroneously with inconsistent responses and interactions. The primary issue was the system getting stuck in a loop and becoming unresponsive due to the URL overload, leading to a consistent failure mode across affected devices [41987]. (f) other: The other behavior exhibited by the system in this failure incident was the inability to handle the excessive load of URLs from certain third-party apps, resulting in a breakdown of the Universal Links system and rendering the devices inoperable. This behavior could be categorized as a system overload or resource exhaustion leading to a critical failure state [41987].

IoT System Layer

Layer Option Rationale
Perception None None
Communication None None
Application None None

Other Details

Category Option Rationale
Consequence property (d) property: People's material goods, money, or data was impacted due to the software failure The software failure incident described in Article 41987 resulted in iPhones and iPads becoming inoperative, with their batteries draining and links being completely inoperative. This issue caused frustration among users who were unable to use their devices effectively. Additionally, the problem was traced back to rogue third-party apps, such as Booking.com, which had incorrectly formatted lists of URLs. As a result, users experienced broken phones and had to rely on Apple's update to fix the issue, impacting the usability and functionality of their devices [41987].
Domain information (a) The software failure incident reported in Article 41987 is related to the information industry. The issue was with the iOS 9.3 update that caused devices to lock up, drain batteries, and rendered links inoperative, affecting various apps like Safari, Mail, Messages, and third-party apps that handle links within apps [41987].

Sources

Back to List