iOS 12 cannot fetch AASA file within 5 minutes after rebooting the phone

Originator:guangyu.wangg
Number:rdar://45201697 Date Originated:2018/10/11
Status:OPEN Resolved:No
Product:iOS Product Version:12+
Classification: Reproducible:Yes
 
Summary:
On iOS 12, the AASA file cannot be downloaded with 5 minutes after rebooting the phone. If we leave the phone open for 5 minutes, the problem will go away. 

I saw logs like:
{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{timeSinceThunderingHerdTriggerEvent < 300}]}}

It seems the ThunderingHerdPolicy is blocking the task to download the AASA file. (Actually, the log shows ThunderingHerdPolicy was blocking a lot of other tasks)

This is NOT reproducible on iOS11.

Steps to Reproduce:
I will use the Youtube app as an example:
1. Delete Youtube app from the phone
2. Reboot the iPhone.
3. Go to the App store to download the Youtube app.
4. Go to https://m.youtube.com and try to open the app through the universal link
If you finish step 3 and 4 within 5minutes after reboot, iOS won't be able to detect the installed Youtube app.

Expected Results:
AASA file and the universal link should work right after rebooting the iPhone.

Actual Results:
Users have to wait for about 5 minutes after reboot for universal links to work.
{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{timeSinceThunderingHerdTriggerEvent < 300}]}}

Version/Build:
iOS 12. Tried on 12.0, 12.0.1, 12.1 Beta3

Some device logs filtered by "swcd":
default	14:41:43.830014 -0400	swcd	Added service 'applinks', appID 'EQHXZ8M8AV.com.google.ios.youtube', domain 'www.youtube.com'
default	14:41:43.831630 -0400	swcd	Starting NSURLSession com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145, Discretionary yes
default	14:41:44.356799 -0400	swcd	background session setup will wait for reply: session <private> with identifier <private>
default	14:41:44.365005 -0400	swcd	background session setup reply received: session <private> with identifier <private>
default	14:41:44.644823 -0400	swcd	Task <0099DDD7-15D4-4338-A3C6-410A5711AF47>.<1> resuming, QOS(0x15)
default	14:41:44.646168 -0400	swcd	Started request for domain 'www.youtube.com', URL 'https://www.youtube.com/.well-known/apple-app-site-association'
default	14:41:44.646287 -0400	swcd	Added service 'applinks', appID 'EQHXZ8M8AV.com.google.ios.youtube', domain 'youtu.be'
default	14:41:44.876103 -0400	dasd	Submitted Activity: com.apple.CFNetwork-cc-90-23-Task <0099DDD7-15D4-4338-A3C6-410A5711AF47>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<1>:1D9EC9 <private>
default	14:41:44.878622 -0400	dasd	com.apple.CFNetwork-cc-90-23-Task <0099DDD7-15D4-4338-A3C6-410A5711AF47>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<1>:1D9EC9:[
	{name: CPUUsagePolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[Max allowed CPU Usage level]: Required:50.00, Observed:90.00},]}}
	{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{timeSinceThunderingHerdTriggerEvent < 300}]}}
 ], FinalDecision: Must Not Proceed}
default	14:41:44.879632 -0400	swcd	Task <09160EAB-137A-43CB-A135-2BFBDD470339>.<2> resuming, QOS(0x15)
default	14:41:44.892592 -0400	dasd	Submitted Activity: com.apple.CFNetwork-cc-90-24-Task <09160EAB-137A-43CB-A135-2BFBDD470339>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<2>:62E775 <private>
default	14:41:44.892888 -0400	dasd	com.apple.CFNetwork-cc-90-24-Task <09160EAB-137A-43CB-A135-2BFBDD470339>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<2>:62E775:[
	{name: CPUUsagePolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[Max allowed CPU Usage level]: Required:50.00, Observed:90.00},]}}
	{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{timeSinceThunderingHerdTriggerEvent < 300}]}}
 ], FinalDecision: Must Not Proceed}
default	14:41:44.898352 -0400	swcd	Started request for domain 'youtu.be', URL 'https://youtu.be/.well-known/apple-app-site-association'
default	14:41:45.020024 -0400	swcd	Added service 'applinks', appID 'EQHXZ8M8AV.com.google.ios.youtube', domain 'youtube.com'
default	14:41:45.027501 -0400	swcd	Task <AD83657C-2135-4920-84BE-BE260CCBEC6D>.<3> resuming, QOS(0x15)
default	14:41:45.062140 -0400	swcd	Started request for domain 'youtube.com', URL 'https://youtube.com/.well-known/apple-app-site-association'
default	14:41:45.064186 -0400	swcd	Added service 'applinks', appID 'EQHXZ8M8AV.com.google.ios.youtube', domain 'm.youtube.com'
default	14:41:45.140982 -0400	swcd	Task <C733170D-876C-4AA1-B3DF-B626254626BC>.<4> resuming, QOS(0x15)
default	14:41:45.141052 -0400	swcd	Started request for domain 'm.youtube.com', URL 'https://m.youtube.com/.well-known/apple-app-site-association'
default	14:41:45.141120 -0400	swcd	Save database
default	14:41:45.146448 -0400	dasd	Submitted Activity: com.apple.CFNetwork-cc-90-25-Task <AD83657C-2135-4920-84BE-BE260CCBEC6D>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<3>:B05126 <private>
default	14:41:45.149232 -0400	dasd	com.apple.CFNetwork-cc-90-25-Task <AD83657C-2135-4920-84BE-BE260CCBEC6D>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<3>:B05126:[
	{name: CPUUsagePolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[Max allowed CPU Usage level]: Required:50.00, Observed:90.00},]}}
	{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{timeSinceThunderingHerdTriggerEvent < 300}]}}
 ], FinalDecision: Must Not Proceed}
default	14:41:45.151047 -0400	dasd	Submitted Activity: com.apple.CFNetwork-cc-90-26-Task <C733170D-876C-4AA1-B3DF-B626254626BC>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<4>:F5D562 <private>
default	14:41:45.151314 -0400	dasd	com.apple.CFNetwork-cc-90-26-Task <C733170D-876C-4AA1-B3DF-B626254626BC>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<4>:F5D562:[
	{name: CPUUsagePolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[Max allowed CPU Usage level]: Required:50.00, Observed:90.00},]}}
	{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{timeSinceThunderingHerdTriggerEvent < 300}]}}
 ], FinalDecision: Must Not Proceed}
default	14:41:50.035631 -0400	swcd	Get info for service 'applinks', app ID 'NULL', domain 'm.yo...'
default	14:41:51.486913 -0400	dasd	com.apple.CFNetwork-cc-90-24-Task <09160EAB-137A-43CB-A135-2BFBDD470339>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<2>:62E775:[
	{name: CPUUsagePolicy, policyWeight: 5.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{[Max allowed CPU Usage level]: Required:50.00, Observed:90.00},]}}
	{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{timeSinceThunderingHerdTriggerEvent < 300}]}}
 ], FinalDecision: Must Not Proceed}
.
.
.
default	14:42:52.295405 -0400	dasd	com.apple.CFNetwork-cc-90-26-Task <C733170D-876C-4AA1-B3DF-B626254626BC>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<4>:F5D562:[
	{name: ThunderingHerdPolicy, policyWeight: 1.000, response: {Decision: Must Not Proceed, Score: 0.00, Rationale: [{deviceInUse == 1 AND timeSinceThunderingHerdTriggerEvent < 900}]}}
 ], FinalDecision: Must Not Proceed}
default	14:43:58.143163 -0400	dasd	com.apple.CFNetwork-cc-90-23-Task <0099DDD7-15D4-4338-A3C6-410A5711AF47>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<1>:1D9EC9:[
	{name: ApplicationPolicy, policyWeight: 5.000, response: {Decision: Can Proceed, Score: 0.10}}
 ] sumScores:60.410000, denominator:64.910000, FinalDecision: Can Proceed FinalScore: 0.930673}
default	14:43:58.143212 -0400	dasd	'com.apple.CFNetwork-cc-90-23-Task <0099DDD7-15D4-4338-A3C6-410A5711AF47>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<1>:1D9EC9' has compatibility score of 1.000000 with 'com.apple.CFNetwork-cc-90-1:2E33B7'. Relaxing scores.
default	14:43:58.143284 -0400	dasd	'com.apple.CFNetwork-cc-90-23-Task <0099DDD7-15D4-4338-A3C6-410A5711AF47>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<1>:1D9EC9' CurrentScore: 0.930673, ThresholdScore: 0.580686 DecisionToRun:1
default	14:43:58.147422 -0400	nsurlsessiond	[C26 Hostname#1f4a45b8:443 tcp, bundle id: com.apple.swcd, url: https://www.youtube.com/.well-known/apple-app-site-association, traffic class: 100, tls, indefinite] start
default	14:43:58.503821 -0400	swcd	Completing request for 'https://www.youtube.com/.well-known/apple-app-site-association', status 0/0x0 noErr
default	14:43:58.506661 -0400	swcd	Updated app ID 'EQHXZ8M8AV.com.google.ios.youtube', domain 'www.youtube.com', flags 0x0 < > -> 0x2 < SiteApproved > on check
default	14:43:59.897878 -0400	nsurlsessiond	[C26 Hostname#1f4a45b8:443 tcp, bundle id: com.apple.swcd, url: https://www.youtube.com/.well-known/apple-app-site-association, traffic class: 100, tls, indefinite] cancel
default	14:43:59.897965 -0400	nsurlsessiond	[C26 Hostname#1f4a45b8:443 tcp, bundle id: com.apple.swcd, url: https://www.youtube.com/.well-known/apple-app-site-association, traffic class: 100, tls, indefinite] cancelled
	[C26.1 <private> 192.168.2.14:56827<->IPv4#3b2ff364:443]
	Connected Path: satisfied (Path is satisfied), interface: en0, ipv4, dns
	Duration: 1.743s, DNS @0.001s took 0.060s, TCP @0.068s took 0.050s, TLS took 0.156s
	bytes in/out: 4756/556, packets in/out: 5/3, rtt: 0.047s, retransmitted packets: 0, out-of-order packets: 0
default	14:43:59.903604 -0400	dasd	COMPLETED com.apple.CFNetwork-cc-90-23-Task <0099DDD7-15D4-4338-A3C6-410A5711AF47>.<com.apple.swcd>.<com.apple.SharedWebCredentials-94C51D34-5792-4408-880C-A542E1536145>.<1>:1D9EC9 <private>!

Comments

I'm also facing same problem on iOS12.1(16B92). Immediately after rebooting, iOS does not fetch my apple-app-site-association when installing my app. In 30 minutes after rebooting, iOS was able to fetch the apple-app-site-association.

By HakamataShunsuke at Nov. 7, 2018, 2:20 a.m. (reply...)

Same issue here, and it's quite an issue if you're working with app which is using deeplinks for login/sign up process. I've uninstalled the app, reboot iphone, install app again, waited for some minutes, but still it's not working. What is more frustrating is that this working normally until I uninstalled my app on purpose, and after I installed it again the universal links are broken. Very annoying..

Upvoting

I'm facing the same issue, iOS 12 is not detecting well the dynamic link on a fresh install, needs like 5 or 10 minutes to detect it again


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!