WebKit Instance Intermittent Crashing

Hello,

We're throwing up a brief webkit view for a login process and we are seeing it crash the webkit view intermittently but are unable to work out why this might be.

We have ruled out some environmental and network issues - and wondering if anyone can throw any hints our way based on the crash logs below?

Forum says its too long, so I've pastebinned it: https://pastebin.com/rw3HXLKp

Any help appreciated.

Some additional info...

Jan 25 12:30:39 tccd[44] <Error>: Unable to construct an identity to kTCCServiceMicrophone, Resp:{TCCDProcess: identifier=com.apple.UserEventAgent, pid=29, auid=0, euid=0, binary_path=/usr/libexec/UserEventAgent}
Jan 25 12:30:39 UserEventAgent(TCC)[29] <Error>: Created Error: Error Domain=kTCCErrorDomain Code=2 "server error: Unable to construct an identity to kTCCServiceMicrophone, Resp:{TCCDProcess: identifier=com.apple.UserEventAgent, pid=29, auid=0, euid=0, binary_path=/usr/libexec/UserEventAgent}" UserInfo={NSDescription=server error: Unable to construct an identity to kTCCServiceMicrophone, Resp:{TCCDProcess: identifier=com.apple.UserEventAgent, pid=29, auid=0, euid=0, binary_path=/usr/libexec/UserEventAgent}}
Jan 25 12:30:39 UserEventAgent(AudioSession)[29] <Error>:               TCCUtils.mm:42    tcc_server_message_request_authorization(kTCCServiceMicrophone) failed: Error Domain=kTCCErrorDomain Code=2 "server error: Unable to construct an identity to kTCCServiceMicrophone, Resp:{TCCDProcess: identifier=com.apple.UserEventAgent, pid=29, auid=0, euid=0, binary_path=/usr/libexec/UserEventAgent}" UserInfo={NSDescription=server error: Unable to construct an identity to kTCCServiceMicrophone, Resp:{TCCDProcess: identifier=com.apple.UserEventAgent, pid=29, auid=0, euid=0, binary_path=/usr/libexec/UserEventAgent}}
Jan 25 12:30:39 backboardd[64] <Error>: *** already have a main display digitizer
Jan 25 12:30:39 backboardd[64] <Error>: touch down without previous range event: 2
Jan 25 12:30:39 backboardd(IOKit)[64] <Error>: 03D035A1-4A8B-4541-B842-FBDB5E83076D: HIDVS ID:eaa9cc2f0121c iohideventsystem_client_dispatch_virtual_service_notification:10000003
Jan 25 12:30:39 backboardd(IOKit)[64] <Error>: 03D035A1-4A8B-4541-B842-FBDB5E83076D: HIDVS ID:eaa9cc2f0121c iohideventsystem_client_dispatch_virtual_service_notification:10000003
Jan 25 12:30:40 kernel[0] <Error>: pac_exception_triage: process com.apple.WebKit[8181] hit a pac violation
Jan 25 12:30:40 kernel(Sandbox)[0] <Error>: 2300 duplicate reports for Sandbox: com.apple.WebKit.Networking(8156) deny(1) mach-lookup com.apple.diagnosticd
Jan 25 12:30:40 kernel(Sandbox)[0] <Error>: Sandbox: com.apple.WebKit.GPU(8182) deny(1) mach-lookup com.apple.diagnosticd
Jan 25 12:30:40 kernel(Sandbox)[0] <Error>: Sandbox: com.apple.WebKit.Networking(8156) deny(1) mach-lookup com.apple.diagnosticd
Jan 25 12:30:40 Iceland QA(WebKit)[8153] <Error>: 0x118001c50 - [PID=8181] WebProcessProxy::didClose: (web process 8181 crash)
Jan 25 12:30:40 Iceland QA(WebKit)[8153] <Error>: 0x118001c50 - [PID=8181] WebProcessProxy::processDidTerminateOrFailedToLaunch: reason=Crash
Jan 25 12:30:40 Iceland QA(WebKit)[8153] <Error>: 0x13b02e618 - [pageProxyID=74, webPageID=75, PID=8181] WebPageProxy::processDidTerminate: (pid 8181), reason=Crash
Jan 25 12:30:40 Iceland QA(RunningBoardServices)[8153] <Error>: Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}>
Jan 25 12:30:40 Iceland QA(WebKit)[8153] <Error>: 0x13b02e618 - [pageProxyID=74, webPageID=75, PID=8181] WebPageProxy::dispatchProcessDidTerminate: reason=Crash
Jan 25 12:30:40 Iceland QA(WebKit)[8153] <Error>: 0x11701c3c0 - ProcessAssertion::acquireSync Failed to acquire RBS assertion 'WebProcess Background Assertion' for process with PID=8181, error: Error Domain=RBSAssertionErrorDomain Code=2 "Specified target process does not exist" UserInfo={NSLocalizedFailureReason=Specified target process does not exist}
Jan 25 12:30:40 runningboardd(RunningBoard)[31] <Error>: [application<com.iceland.iphone.qa>:8153] client not entitled to get limitationsForInstance: <Error Domain=RBSServiceErrorDomain Code=1 "Client not entitled" UserInfo={RBSEntitlement=com.apple.runningboard.process-state, NSLocalizedFailureReason=Client not entitled, RBSPermanent=false}>
Jan 25 12:30:40 runningboardd(RunningBoard)[31] <Error>: [application<com.iceland.iphone.qa>:8153] client not entitled to get limitationsForInstance: <Error Domain=RBSServiceErrorDomain Code=1 "Client not entitled" UserInfo={RBSEntitlement=com.apple.runningboard.process-state, NSLocalizedFailureReason=Client not entitled, RBSPermanent=false}>
Jan 25 12:30:40 runningboardd(RunningBoard)[31] <Error>: [application<com.iceland.iphone.qa>:8153] client not entitled to get limitationsForInstance: <Error Domain=RBSServiceErrorDomain Code=1 "Client not entitled" UserInfo={RBSEntitlement=com.apple.runningboard.process-state, NSLocalizedFailureReason=Client not entitled, RBSPermanent=false}>

This crash appears to have been fixed starting in iOS 16.4 and later.

I don't know of a way to work around it.

If you absolutely need a workaround, I'd start by trying to reduce the HTML+CSS+JavaScript on the page to a minimal test case, then try to figure out a way to avoid the crash by modifying the HTML/JavaScript.

WebKit Instance Intermittent Crashing
 
 
Q