We’re using cordova-plugin-ionic-webview. On rare occasions (~1% of users) we’re seeing an iOS crash in the startURLSchemeTask method of IONAssetHandler.m, line 23, which is specifically this statement I believe:
NSURL * url = urlSchemeTask.request.URL;
Anybody have an idea what could be going on that would cause an occasional crash from this line? Is this strictly something internal to Ionic/Cordova, or could it be something our app is doing wrong?
Here is stack trace:
Crashed: com.apple.main-thread
0 WebCore 0x19e912b4c WebCore::blobRegistry() + 20
1 WebCore 0x19e912b48 WebCore::blobRegistry() + 16
2 WebCore 0x19e93d8a4 WebCore::createHTTPBodyCFReadStream(WebCore::FormData&) + 32
3 WebCore 0x19e93e2e4 WebCore::setHTTPBody(_CFURLRequest*, WebCore::FormData*) + 56
4 WebCore 0x19d8d2cf4 WebCore::ResourceRequest::doUpdatePlatformHTTPBody() + 120
5 WebCore 0x19e937814 WebCore::ResourceRequestBase::updatePlatformRequest(WebCore::HTTPBodyUpdatePolicy) const + 68
6 WebCore 0x19d8d1880 WebCore::ResourceRequest::nsURLRequest(WebCore::HTTPBodyUpdatePolicy) const + 20
7 WebKit 0x19d17f1e8 WebKit::WebURLSchemeTask::nsRequest() const + 68
8 OurApp 0x10245a3e0 -[IONAssetHandler webView:startURLSchemeTask:] + 23 (IONAssetHandler.m:23)
9 WebKit 0x19d124fd0 WebKit::WebURLSchemeHandlerCocoa::platformStartTask(WebKit::WebPageProxy&, WebKit::WebURLSchemeTask&) + 128
10 WebKit 0x19d17e138 WebKit::WebURLSchemeHandler::startTask(WebKit::WebPageProxy&, WebKit::WebProcessProxy&, unsigned long long, WebCore::ResourceRequest&&, WTF::CompletionHandler<void (WebCore::ResourceResponse const&, WebCore::ResourceError const&, WTF::Vector<char, 0ul, WTF::CrashOnOverflow, 16ul> const&)>&&) + 220
11 WebKit 0x19d14f028 WebKit::WebPageProxy::startURLSchemeTaskShared(WTF::Ref<WebKit::WebProcessProxy, WTF::DumbPtrTraits<WebKit::WebProcessProxy> >&&, WebKit::URLSchemeTaskParameters&&) + 96
12 WebKit 0x19d14ef90 WebKit::WebPageProxy::startURLSchemeTask(WebKit::URLSchemeTaskParameters&&) + 52
13 WebKit 0x19d38ea9c WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 22332
14 WebKit 0x19cf2d0e8 IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) + 104
15 WebKit 0x19d17a630 WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) + 32
16 WebKit 0x19cf17740 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) + 204
17 WebKit 0x19cf1a590 IPC::Connection::dispatchIncomingMessages() + 404
18 JavaScriptCore 0x1a45dca6c WTF::RunLoop::performWork() + 276
19 JavaScriptCore 0x1a45dcd2c WTF::RunLoop::performWork(void*) + 36
20 CoreFoundation 0x1959d67e0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
21 CoreFoundation 0x1959d6738 __CFRunLoopDoSource0 + 80
22 CoreFoundation 0x1959d5ed0 __CFRunLoopDoSources0 + 180
23 CoreFoundation 0x1959d101c __CFRunLoopRun + 1080
24 CoreFoundation 0x1959d08bc CFRunLoopRunSpecific + 464
25 GraphicsServices 0x19f83c328 GSEventRunModal + 104
26 UIKitCore 0x199a666d4 UIApplicationMain + 1936
27 OurApp 0x10232e474 main + 32 (main.m:32)
28 libdyld.dylib 0x19585b460 start + 4