Deep link broken after routing change: symptoms, cause, and the test that catches it
Deep links or universal links open the wrong screen or nothing.
Deep link broken after routing change is documented by 2 accepted public reports from 2 organisations, 2 of them published in the last 5 years.
- Likelihood: low (2 public reports in 5 years)
- Impact: medium (2 of 2 reports: availability)
Symptoms
User-visible
- Users who opened links from the deep linking service landed on the app's default fallback domain when one was configured.[2]
- Users saw an error page when the app had no fallback domain configured.[2]
- Some iOS users could not open the app in a same-device flow.[1]
- Universal links did not open the app for users who installed it after the migration or whose iOS rechecked the site association file.[1]
Root causes
- stage: config A configuration change in the deep linking service made link redirection start failing.[2]
- stage: infra The old app domain moved to a new DNS provider and redirected its traffic to the new domain. iOS does not follow redirects for universal links, so devices could not validate the site association.[1]
Public examples
- [1]Yivi (Caesar Groep), 2025-07-01. A domain migration of irma.app made it redirect traffic to yivi.app, and because iOS does not follow redirects for Universal Links, iOS users who installed the Yivi app after the migration could not open the app through Universal Links until the domain was pointed back to its original server. primary Post-mortem of the June 29th and 30th 2025 incident
- [2]Branch, 2022-06-22. A configuration change at the Branch deep linking service made link redirection fail for 22 minutes, sending users to the app's fallback domain or to an error page instead of the linked destination. primary Link Redirection Issue
Test classes that catch it
| Test class | Stage | Limitation | Basis |
|---|---|---|---|
| End-to-end tests | pre-deploy | An end-to-end test on a device that had already validated the site association still opens the app, because the failure hit only users who installed after the migration or whose iOS rechecked the association file. | by design analysis |
| Synthetic monitoring | post-deploy | A synthetic browser check follows the redirect to the new domain and passes, so it misses the iOS segment that rejects redirects for universal links. | by design analysis |
| Configuration and environment tests | pre-deploy | A configuration test finds the redirect only if it runs on the domain migration itself, because the DNS provider move happened outside any app release. | by design analysis |
Risk
- Likelihood: low (2 public reports in 5 years)
- Impact: medium (2 of 2 reports: availability)
| Accepted public reports | 2 |
|---|---|
| Published in the last 5 years | 2 |
| Impact stated: availability | 2 |
Pre-release checklist
- PR-01
- PR-02
- PR-03
- PR-04
- PR-05
- PR-06
- PR-07
First 30 minutes
- FM-01
- FM-02
- FM-03
- FM-04
- FM-05
- FM-06
- FM-07
- FM-08
Download the checklist
What catches this: catalogue entries
Listed because their own documentation or site names end-to-end tests, synthetic monitoring, configuration and environment tests on the verification date. Alphabetical. Not a recommendation.
Tools whose documentation names these test classes
- Appium e2e source verified 2026-10-21
- Applitools Eyes e2e source verified 2026-10-21
- axe-core e2e source verified 2026-10-21
- behave e2e source verified 2026-10-21
- Checkly synthetic source verified 2026-10-21 e2e source verified 2026-10-21
- CodeceptJS e2e source verified 2026-10-21
- Cucumber e2e source verified 2026-10-21
- Cypress e2e source verified 2026-10-21
- Datadog Synthetic Monitoring synthetic source verified 2026-10-21 e2e source verified 2026-10-21
- Detox e2e source verified 2026-10-21
- Espresso e2e source verified 2026-10-21
- Firebase Test Lab e2e source verified 2026-10-21
- Flipt config source verified 2026-10-21
- Grafana Cloud Synthetic Monitoring synthetic source verified 2026-10-21
- Grafana k6 synthetic source verified 2026-10-21
- GrowthBook config source verified 2026-10-21
- Karate e2e source verified 2026-10-21
- Katalon Studio e2e source verified 2026-10-21
- Kobiton e2e source verified 2026-10-21
- LaunchDarkly config source verified 2026-10-21
- Maestro e2e source verified 2026-10-21
- Mocha e2e source verified 2026-10-21
- Nightwatch e2e source verified 2026-10-21
- Pa11y e2e source verified 2026-10-21
- Percy e2e source verified 2026-10-21
- Playwright e2e source verified 2026-10-21
- PostHog config source verified 2026-10-21
- Postman synthetic source verified 2026-10-21
- Puppeteer e2e source verified 2026-10-21
- Robot Framework e2e source verified 2026-10-21
- RSpec e2e source verified 2026-10-21
- Sauce Labs e2e source verified 2026-10-21
- Selenium e2e source verified 2026-10-21
- Serenity BDD e2e source verified 2026-10-21
- TestCafe e2e source verified 2026-10-21
- TestingBot e2e source verified 2026-10-21
- TestMu AI (formerly LambdaTest) e2e source verified 2026-10-21
- Unleash config source verified 2026-10-21
- Uptime Kuma synthetic source verified 2026-10-21
- WebdriverIO e2e source verified 2026-10-21
- XCTest e2e source verified 2026-10-21
Providers whose site names these test classes
- 2i e2e source verified 2026-10-21
- Abstracta e2e source verified 2026-10-21
- andagon people GmbH e2e source verified 2026-10-21
- Appmatics e2e source verified 2026-10-21
- AQA Masters e2e source verified 2026-10-21
- BugRaptors e2e source verified 2026-10-21
- Cleverix e2e source verified 2026-10-21
- Crestech Software Systems e2e source verified 2026-10-21
- Crowdar e2e source verified 2026-10-21
- DeviQA e2e source verified 2026-10-21
- Elinext e2e source verified 2026-10-21
- Exactpro e2e source verified 2026-10-21
- Full Scale e2e source verified 2026-10-21
- Inmetrics e2e source verified 2026-10-21
- Invensis Technologies e2e source verified 2026-10-21
- iScale Solutions e2e source verified 2026-10-21
- Itekako e2e source verified 2026-10-21
- iValuePlus Services e2e source verified 2026-10-21
- Nimble Approach e2e source verified 2026-10-21
- Outpost QA e2e source verified 2026-10-21
- PLATO e2e source verified 2026-10-21
- Polteq e2e source verified 2026-10-21
- Q-Centric GmbH e2e source verified 2026-10-21
- QA Madness e2e source verified 2026-10-21
- QA Mentor e2e source verified 2026-10-21
- QASource e2e source verified 2026-10-21
- QAwerk e2e source verified 2026-10-21
- Quality House e2e source verified 2026-10-21
- Quality Island e2e source verified 2026-10-21
- QualityKiosk Technologies e2e source verified 2026-10-21
- QualityLogic e2e source verified 2026-10-21
- Scalefocus e2e source verified 2026-10-21
- SHIFT ASIA e2e source verified 2026-10-21
- SimplyTest GmbH e2e source verified 2026-10-21
- Sofka Technologies e2e source verified 2026-10-21
- Soflab Technology e2e source verified 2026-10-21
- SQA - Software Quality Assurance S.A. e2e source verified 2026-10-21
- SunTec India e2e source verified 2026-10-21
- T2S Tecnologia e2e source verified 2026-10-21
- TestFort e2e source verified 2026-10-21
- Testhouse e2e source verified 2026-10-21
- Testing IT e2e source verified 2026-10-21
- TestMatick e2e source verified 2026-10-21
- Testrig Technologies e2e source verified 2026-10-21
- Testscenario e2e source verified 2026-10-21
- TestSolutions GmbH e2e source verified 2026-10-21
- THEY.dev e2e source verified 2026-10-21
- tiQtoQ e2e source verified 2026-10-21
- VTEST e2e source verified 2026-10-21
- WebDepend e2e source verified 2026-10-21
- Zoonou e2e source verified 2026-10-21
Only on this page
Deep link broken after routing change was not introduced in app code in either report. In report [1], the fault entered at the infrastructure stage through a domain migration. The old domain moved to a new DNS provider and redirected traffic to the new domain [1]. iOS does not follow redirects for universal links, so devices could not validate the site association [1].
In report [2], the fault entered through a configuration change in the link redirection service, and redirection failed for 22 minutes [2]. Neither fix needed a new app build. Report [1] changed the old domain's DNS settings back to the old server, and report [2] restored links while a links backup served fallback redirects.
Related incidents
- API version dropped while old app live The backend removes an API version still used by installed app versions.
- Certificate expired A TLS certificate or pinned certificate expires and connections fail.
- API key rotation breaks integrations A key rotation invalidates partner integrations that were not notified.
- Asset cache serves old bundle Users receive an old JavaScript bundle with a new API and the app errors.
- DNS change propagation outage A DNS or load balancer change sends traffic to the wrong target or nowhere.
Questions
What causes deep link broken after routing change?
In report [1], a domain migration redirected traffic to a new domain, and iOS does not follow redirects for universal links. In report [2], a configuration change made link redirection fail.
What are the symptoms of deep link broken after routing change?
Some iOS users could not open the app in a same-device flow [1]. Users who opened links reached the fallback domain or an error page during the 22 minutes of failed redirection [2].
Which test class catches deep link broken after routing change, and what does it miss?
End-to-end tests, synthetic monitoring and configuration tests are listed, all with the by-design label. An end-to-end test on a device that had already validated the site association still opens the app.
Which public reports document deep link broken after routing change?
Two primary reports from two organisations document it. They were published on 2022-06-22 [2] and 2025-07-01 [1].
How long did it take to detect deep link broken after routing change in the public reports?
Neither report states a time to detect in minutes. In report [1], the first user report arrived at 21:07 CEST on 29 June, and investigation started at 13:15 CEST on 30 June.
Should a team roll back or fix forward when deep link broken after routing change happens?
Report [1] pointed the old domain back to its original server and offered a page that converts old links. Report [2] restored links to full health 22 minutes after the change.
Release Incident Playbook (2026). Deep link broken after routing change: symptoms, cause, and the test that catches it, content version 1.0.0. https://releasefailures.com/incidents/deep-link-broken-after-routing-change/. Accessed 2026-10-21.