White Screen of Death on my iPhone

I share my experience dealing with untimely occurence of White Screen of Death WSoD on my iPhone.

Share:

Sep 22, 2024 1574 Words

Read Time: 8 Minutes

My iPhone was affected by the White Screen of Death (WSoD)
My iPhone was affected by the White Screen of Death (WSoD)

White screen of death

On 12th September 2024, at around 5 AM, I snoozed the alarm on my iPhone. After snoozing, I checked for any time-sensitive notifications, as I usually do after waking up. Suddenly, I noticed part of the screen flicker for a fraction of a second. I was taken aback. To accurately describe what happened, imagine flashes of white vertical lines with maximum brightness. I thought it was just a one-time glitch after two and a half years of nearly flawless performance. But then it happened again. And again. And again. Eventually, the entire screen turned white for a few seconds.

This was intermittent at first but eventually the screen was indefinitely white.

The unquestionable home remedy

“…but have you tried switching it off and turning it back on?”

I locked my iPhone and unlocked it after a few seconds, hoping the problem would go away. But deep down, I knew it wasn’t fully resolved. However, it seemed to work — for about three minutes. Then, the problem resurfaced. I searched the web to understand what was going on.

That’s how I found out about the WSoD. I learned that it had been happening to a small but vocal subset of iPhone users. Some had even complained that it occurred on the iPhone 14 series just two months after purchase.

A screenshot of searches about WSoD
A screenshot of searches about WSoD

After reading several posts on different support forums and watching a few YouTube videos, I tried some basic troubleshooting steps. Some notable but non-exhaustive ones were as follows:

  1. Turn the iPhone off and on again after a few seconds
  2. Perform a hard restart of the iPhone
  3. Disable the Zoom accessibility feature
  4. ...Some others I don't really remember

None of it worked. The forum threads stopped making progress when someone eventually suggested the poster visit an Apple Service Professional. After 30 minutes, I knew this wasn’t something I could fix on my own. What made it worse was that my AppleCare had expired just a few months prior. So, whatever the hardware issue was, I would need to get it repaired, and it was going to be expensive. But that wasn’t the only problem.

Dependency on a smartphone

It’s 2024. Almost every aspect of our lives has some level of dependency (soft or even hard) on software. Smartphones are heavily used for Multi-Factor Authentication (MFA) to gain access to various online services. If access to the smartphone were lost, it would be extremely difficult to access critical services and software. This realisation hit me hard. I had to get my iPhone fixed, but first, I needed to ensure that the aspects of my life dependent on a smartphone weren’t severely affected.

Fortunately, I had a spare Android smartphone lying around at home. I immediately moved my SIM card, installed critical applications like email, MFA, chat clients, etc. from the play store, — these were like 5–6 essential apps. The process wasn’t difficult, but the Android phone was incredibly slow.

I then encountered a critical issue: the MFA client needed to scan a code to transfer data to the new device. This was a problem because the QR scanner required access to my iPhone’s screen, but now the screen was completely white.

Screen mirroring to the rescue

iPhones and iPads have a built-in ability to cast the screen to Apple displays like Macs or Apple TVs. This feature could allow me to access the transfer code. But how?

Even though the screen was white, I noticed that the touch inputs were still functional. I could still receive calls (I just had to swipe right at the bottom where the slide panel would have been).

I had to use this quirk to blindly navigate my iPhone and enable screen mirroring to my Mac. With practice and precise finger gestures, I managed to get it working. The process involved 4–5 sequential gestures:

  1. Unlock the iPhone using Face ID
  2. Swipe up from the bottom to unlock the phone
  3. Swipe down from the top-right corner to bring up the navigation panel
  4. Tap and hold the centre of the screen to activate the screen mirror dialog box
  5. Select the first option in the list

I had to do all this without seeing anything on the screen. Thankfully, with Haptic/3D Touch, I knew if something went wrong and could start over by locking the screen. After about 5 minutes of trial and error (without any catastrophic failures, fortunately), I finally managed to mirror my iPhone screen on my Mac. I could now use my iPhone as usual, but I had to view everything through my Mac. I resolved all my dependencies and switched to my spare Android phone as my daily driver for the time being. I was set.

Now what?

I contacted Apple Support and began chatting with a representative. By this time, it was already dawn. The support agent remotely ran a diagnostic check on my device and confirmed that, according to standard diagnostics, there was no hardware failure with the display. The device had passed all tests. After 10–15 minutes of back and forth, the agent asked if I’d be interested in having the device checked by a professional. At this point, I had no choice. The agent shared a link and asked me to fill out an appointment form. I booked an appointment for 2 PM that same day at a service centre nearby.

I got a few more questions answered, thanked the representative, and ended the chat.

At the service centre

I had to cancel my plans for the day and visit the service centre at 2 PM. The technician immediately recognised the problem and informed me that it wasn’t uncommon for iPhone 13 models, which mine belonged to. He said it was likely a genuine hardware defect that occurred during the manufacturing of the display, though he couldn’t guarantee it. The repair could be done relatively quickly, but diagnosing the issue would take 5–6 business days. I gasped — I had expected it to take a day or two. Luckily, I had the spare phone, but 5–6 business days still felt like a long time.

The professional also informed me that the centre wouldn’t be liable for any data loss, and there was a 10% chance of losing data. He kindly gave me time to create backups if I hadn’t already done so, but thanks to the screen mirroring solution I set up earlier, I was all backed up.

Then came the cost! I asked him about it, and he said if it wasn’t Apple’s fault and since my AppleCare warranty had expired, the repair could cost up to $500 USD. This was the worst-case scenario. I had no other option. Personally, $500 was better than buying a new smartphone for the same amount or even more, with little improvement in usage or experience. I filled out the necessary forms and handed over my device, wishing it a speedy recovery.

The next day, I received a call on my spare phone at around 2 PM. It was an unknown number. I answered it and learned that my iPhone had been fixed and was ready for pickup! Wow! In less than 24 hours! I thanked the technician, finished my work early, and visited the service center at around 4:30 PM.

After waiting for about 10 minutes, it was finally my turn. The technician brought out my iPhone and handed it back to me — fully intact, with the screen working like nothing had ever happened.

I bought a fresh screen protector and had it applied in the cleanroom. I signed the acknowledgement form, and the technician informed me that the repair was free of charge because it was a genuine manufacturing defect in the display hardware.

I thanked them for their service and walked out without spending a dime — at least for the repair.

Lessons

This was quite an experience. This was the first time I faced an issue like this with my smartphone. Period. I’m glad that the issue got resolved without much trouble. Here are some notable things that helped me on the spot:

  1. Knowledge of how to use screen-mirroring - without which moving certain apps and performing last minute backups, would’ve been next to impossible
  2. Having a spare smartphone lying around, ready for emergency use
  3. Identifying critical / bare minimum software dependencies in my life
  4. Acting quick - The time window between the first flicker / glitch to full WSoD was close to 30 minutes IIRC

I’d taken everything involved for granted but now I’ve grown to try not do so.

I was under the assumption that if I’d taken good care of a phone and prevent physical damage, I’ll be all good but that is not how the world works.

Always have backups!

It’s beneficial to think of the Murphy’s Law from time to time and identify chances of certain aspects of daily routines facing hurdles especially when it comes to software dependency.

Things CAN and WILL fail almost “randomly1.

I wrote this to share my experience, to try and help anyone navigate similar problems. I sincerely hope that this helped out to any degree.


  1. I put randomly in quotes because while the problem definitely had a concrete cause that may be known to the manufacturer, it’s not the case for the end-user and it did fail randomly on 12th September 2024 ;P ↩︎

Few more issues:

Find more posts from following topics

12
13
2024
27
28
29
4
@binding
abbacchio
accurate-requests
anime
api-development
api-testing
api-testing-tools
array
automated-testing
bad-habits
base64-decoder
base64-encoder
biography
blog
blogging
books
browser
bulma-css
bulma.io
bulmacss
button-swiftui
chatgpt
chrome
clipboard
code
code-block
code-navigation
code-snippet
codecoverage
comparison
compile
computer-networks
configuring-debugger-for-django-in-vs-code
configuring-launch.json-for-python-debugger
copy
copy-to-clipboard
copy-to-clipboard-neovim
css
current-date
current-time
current-timestamp
database
debugger-setup-in-visual-studio-code
debugging-django-app-in-visual-studio-code
debugging-python-code-in-visual-studio-code
debugging-python-programs-with-visual-studio-code
debugging-python-with-virtual-environment-in-vs-code
developer-productivity
developers
development-workflow
django
django-rest-framework
dom
dynamic-sitemap-in-nextjs
encryption
engineering-dashboard
enumerate
experience
fiction
flowcharts
generics
git
git-diff
github
global-keyboard-shorcut
global-shortcut
go
go-hugo
go-programming
go-test
go-to-line
go-tool
go1.18
golang
golang-development
golden-wind
good-habits
gorilla-websocket
gpt
gpt-3.5
gpt-4
gpt-4-api
guide
gumroad
habits
habits-tracker-notion-template
hamburger-menu
hotkeys
html
hugo
ide
image
image-sharing
image-tool-for-ios
imagerenderer
include-timestamp
integrated-development-environment
ios
ios-16
ios16
iphone
iphone-13
iphone-13-pro
iphone-13-pro-max
javascript
jojos-bizzarre-adventure
jump-to-definition
keyboard-shortcut
leonardo-da-vinci
lessons
linux
logging
ls
lsp
macos
map
markdown
markdown-code
mental-programming
menu
menubarextra
mergesort
mermaid-syntax
mistake-tracker-notion
mobile-view
modifier
modulo-operation
navbar
navigationlink
navigationstack
neovim
nested-functions
next.js
nextjs
nextjs-markdown
nextjs-sitemap
nextjs-sitemaps
nice-shot
nice-shot-pro
notion
notion-api
notion-api-python
notion-budget
notion-budget-template
notion-budget-tracker
notion-bug-report-tracker
notion-dashboard
notion-expense-manager
notion-habits
notion-habits-dashboard
notion-habits-template
notion-habits-tracker
notion-habits-tracker-template
notion-issue-tracker
notion-mistake-tracker
notion-product
notion-product-dashboard
notion-product-roadmap
notion-product-roadmap-dashboard
notion-tasks
notion-tasks-dashboard
notion-tasks-template
notion-tasks-tracker
notion-template
notionworkspaces
october
openai
osx
pagination
personal-ifttt-framework
photospicker
photospickeritem
phpickerfilter
postgres
postman-capabilities
postman-request
pre-request-script
product-roadmap-notion-template
product-roadmap-template
productivity
programming
python
python-api
python-debugger-tutorial-for-vs-code
python-debugging-mode-in-vs-code
python-notion-api
python3
reading
real-time-communication
rehype
remark
request-data
running-debugger-in-visual-studio-code
running-django-app-in-debugging-mode
running-program-in-debugging-mode-in-vs-code
running-python-code-in-debugging-mode
safari
screenshot-app-for-ios
screenshot-app-ios
screenshot-ios
screenshot-tool-for-ios
september
set-current-timestamp
setting-up-debugger-in-vs-code-for-python
share-extension
sharelink
sharepreview
sharesheet
simple-websocket-server
sitemap
slice
slices
slider
sort
sorting
space-complexity
sql
ssh
step-by-step-guide
stocks-profits-tracker
stocks-profits-tracker-template
stocks-tracker
struct
sustained-vigilance
swift
swiftui
swiftui-button
swiftui-button-action
swiftui-button-style
table-of-contents
tasks-tracker-notion-template
tcp
test
testing
textfield-swiftui
til
tim-sort
time-complexity
timeliness
timestamp-integration
timsort
transferable
triggers-and-actions
tutorial
unittest
unix
us-stocks
usa-stocks
useful-ios-features
using-breakpoints-in-python-debugger
using-virtual-environment-with-python-debugger
vanilla-javascript
variable
vim
visual-mode
visual-studio-code
vs-code
vscode
vscode-go-to-line
walter-isaacson
web-sockets-in-go
websocket-client
websocket-programming
websocket-server
white-screen-of-death
wsod
xcode
xss