Posting here in case other CarPlay developers are hitting the same thing, and to give Apple engineers a forum-side reference for the radar.
Filed as FB22828125.
Symptom
In a CarPlay app using CPListTemplate, UIImage instances assigned to CPListItem.image start rendering as the system placeholder glyph after extended CarPlay use (several hours to a few days of cumulative session time). Text labels and accessory chevrons still render correctly — only the leading image is affected, and it affects every visible template surface at once.
Known recovery
Once the failure starts, it survives:
Killing and relaunching the app
Force-quitting and relaunching from CarPlay itself
Disconnecting and reconnecting CarPlay
The only known recovery is rebooting the iPhone. After reboot, the same code path renders correctly again — until the failure reoccurs.
App-side ruling-out
UIImage instances passed to CPListItem.image are non-nil at failure time (verified by assertions)
Each template rebuild calls UIGraphicsImageRenderer afresh from UIImage(systemName:) — no caching of UIImage across rebuilds
Images are baked via withTintColor(_:renderingMode: .alwaysOriginal) then rasterized, so CarPlay receives a finished bitmap rather than a template image relying on its tinting pipeline
Same code path renders correctly on launch and for hours afterward — the input bytes are identical before and after the failure boundary
Because the failure survives both the app process and the CPTemplateApplicationScene teardown, the corrupted state appears to live in an iOS system process rather than in the app or the CarPlay session.
Question for the forum
Is there a known workaround on the app side — a different image-supply API, or a way to force the CarPlay rendering pipeline to invalidate its cache without an iPhone reboot?
1
0
26