Following up on the configuration-refresh suggestion in this thread, with a sysdiagnose from an affected device (iPhone19,2, iOS 27.0.1, 24A446), filed as FB25275040.
In our case the stale state appears after callservicesd restarts while our VoIP app is suspended:
07:36 The app launches and sets CXProvider.configuration once.
10:26 The app is suspended.
10:30–10:43 callservicesd restarts (new pid, no crash report).
11:26 The app resumes. CallKit reconnects ("callsourcehost.started … setting up XPC connection"), but the app does not receive providerDidReset(_:).
From then on, callservicesd logs this for every call the app reports:
F [com.apple.calls.callservicesd:Audio] Audio session not found for call: <private>. Returning nilOn answer (13:25) it also logs the following, and never activates the session, so provider(_:didActivate:) is never called. Calls stay silent until the app is relaunched.
E [com.apple.calls.callservicesd:Audio] Error retrieving AVAudioSession provider with ID 0We're seeing the same pattern on several customer devices, all on iOS 27, none with providerDidReset(_:) before the failures. Our next release sets CXProvider.configuration again before every reportNewIncomingCall and CXStartCallAction request, as suggested here.
Questions:
Is setting CXProvider.configuration again before each call the supported way to recover after a callservicesd restart? Does it resend the app's audio session so callservicesd no longer sees ID 0?
Is there a way for an app to observe a callservicesd restart, so it can refresh only when needed?
Should providerDidReset(_:) be delivered when callservicesd restarts? We never receive one in this case.
Topic:
Media Technologies
SubTopic:
Audio
Tags: