CallKit does not activate audio session with higher probability after upgrading to iOS 18.4.1

Hi,

We've noticed that this issue occurs more frequently after upgrading to iOS 18.4.1 and can result in one-way audio.

Our app uses CallKit with WebRTC to establish VoIP connections.

However, on iOS 18.4.1, CallKit no longer triggers:

func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession)

We're currently comparing the occurrence rate across different iOS versions to better understand the impact.

Could you please help analyze the root cause of this issue?

Answered by DTS Engineer in 862474022

One bit of follow-up on the bug fix side of this:

FB19429215 (CallKit does not activate audio session with higher probability after upgrading to iOS 18.4.1)

Having looked into the issue in more depth, there are technical issues that are likely to delay a fix coming from our side. The CallKit team is still committed to resolving this, but you should not expect the issue to be resolved in the short term.

I'll also say that, based on my own analysis, I do NOT think this is in fact a "new" issue. That is, going back to the original report on this thread:

We've noticed that this issue occurs more frequently after upgrading to iOS 18.4.1

The focus here was on the increased rate; however, it's very likely that this was simply a shift in the rate an existing bug occurred, NOT a new/different issue. Because of that, my recommendation is that all CallKit apps send a "setConfiguration" immediately before they report a new call. It's the best way I can see to prevent the problem from occurring and is already fully supported by the API, so it's unlikely to introduce new problems. This also means that this code can be left in place indefinitely, regardless of our own bug fix schedule. I strongly suspect that using this approach will improve overall call reliability across all system versions, not just our most recent releases.

*As I noted earlier, it's the only way to do per-call ringtone and icon customization.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Just to provide an update: Our metrics show that iOS 18.6 is still maintaining a high one-way ratio.

Is this with or with the workaround I recommended?

BTW, since you've raised this issue to your team, is it possible to share the plan or indicate in which version the issue is expected to be resolved?

No, I'm afraid I can't talk about our release schedule.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

Hi @DTS Engineer

Is this with or with the workaround I recommended?

No, we may try your recommended workaround solution. However, it won't be implemented quickly before we release to production.

Hi @DTS Engineer

I would like to update our metrics for iOS 26 regarding this issue. It appears that the problem persists on iOS 26 and has worsened as the iOS 26 call count has increased. We will keep eyes on our metrics and post update here.

Has there been any specific change on iOS 26?

We start to implement your recommended solution, but we still need time to release it to our production environment.

@DTS Engineer

The iOS 26 audio session issue has significantly worsened since the iOS 26 release. Currently, it affects 0.628% of calls, resulting in thousands of impacted calls daily, compared to approximately 300,000 total calls per day with iOS 26. We anticipate this issue to escalate further as iOS 26 adoption increases.

Given the critical nature of this problem to our operations, we respectfully request that it be given higher priority or escalated for immediate attention.

After the iOS 18.4 system update, we also encountered an increase in the number of failed call recording initiations for incoming calls. We tested several methods midway through, and only force-quitting the app and restarting it would restore the functionality. Recently, we tried the method suggested by Apple engineers: calling cxProvider.setConfiguration once before each reportNewIncomingCall invocation. Since then, the rate of failed incoming call recordings has started to decrease. This method is recommended for everyone to try, and we would like to thank the Apple engineers for their suggestion.

Glad to here that's working!

Note if you have a case where you get the same failure even with the workaround I suggested, please:

  • File a separate bug on it.
  • Start a new forum thread on it (this one is getting long).
  • Include links to both this forum thread and the new thread in that bug.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

@Sierre Thank you for the information, glad to here that's working. We also have implemented the suggested solution in our app and are awaiting rollout. We hope it will also help resolve the issue with our app.

@rc-yorick_zheng is your problem has been solved?

One bit of follow-up on the bug fix side of this:

FB19429215 (CallKit does not activate audio session with higher probability after upgrading to iOS 18.4.1)

Having looked into the issue in more depth, there are technical issues that are likely to delay a fix coming from our side. The CallKit team is still committed to resolving this, but you should not expect the issue to be resolved in the short term.

I'll also say that, based on my own analysis, I do NOT think this is in fact a "new" issue. That is, going back to the original report on this thread:

We've noticed that this issue occurs more frequently after upgrading to iOS 18.4.1

The focus here was on the increased rate; however, it's very likely that this was simply a shift in the rate an existing bug occurred, NOT a new/different issue. Because of that, my recommendation is that all CallKit apps send a "setConfiguration" immediately before they report a new call. It's the best way I can see to prevent the problem from occurring and is already fully supported by the API, so it's unlikely to introduce new problems. This also means that this code can be left in place indefinitely, regardless of our own bug fix schedule. I strongly suspect that using this approach will improve overall call reliability across all system versions, not just our most recent releases.

*As I noted earlier, it's the only way to do per-call ringtone and icon customization.

__
Kevin Elliott
DTS Engineer, CoreOS/Hardware

CallKit does not activate audio session with higher probability after upgrading to iOS 18.4.1
 
 
Q