Skip to content

[Bug] IterableWebView crashes on Android 16 — Resources$NotFoundException in WebViewFactory.getProvider #996

@digital-nelson

Description

@digital-nelson

Issue Description

The Iterable SDK crashes on Android 16 devices when attempting to display in-app messages. The crash occurs during IterableWebView instantiation in IterableInAppFragmentHTMLNotification.onCreateView() — specifically when super(context) calls WebViewFactory.getProvider(), which fails with a Resources$NotFoundException.

This is a fatal crash with no error handling around the WebView constructor.

Stack Trace

android.util.AndroidRuntimeException
  -> Resources$NotFoundException: failed to redirect ResourcesImpl
    at android.app.ResourcesManager.redirectAllResourcesToNewImplLocked
    at android.webkit.WebViewFactory.getProvider
    at android.webkit.WebView.<init>
    at com.iterable.iterableapi.IterableWebView.<init>
    at com.iterable.iterableapi.IterableInAppFragmentHTMLNotification.onCreateView

Impact

  • ~1,870 unique users crashed in the last 14 days
  • 100% Android 16 — Samsung (S25/S24/S23/A-series), Motorola (Edge 50/60), Xiaomi
  • Every user receiving an in-app message on Android 16 crashes
  • In-app messages are completely non-functional on Android 16

Root Cause

Android 16 framework ResourcesManager.redirectAllResourcesToNewImplLocked() fails during WebView provider init. The IterableWebView constructor in onCreateView() has no try-catch, so the exception propagates and crashes the app.

Suggested Fix

Wrap WebView creation in onCreateView() with try-catch:

try {
    webView = new IterableWebView(getContext());
} catch (Exception e) {
    IterableLogger.e(TAG, \"Failed to create WebView\", e);
    dismissAllowingStateLoss();
    return new FrameLayout(getContext());
}

Also consider a WebView health check in IterableInAppDisplayer.showMessage() before showing the fragment. Related: #954.

Environment

  • SDK version: 3.5.10 (also unpatched in 3.6.5 source)
  • Android OS: 16 (API 36)
  • Devices: All major OEMs on Android 16

Request

Could the team provide an ETA for a fix? This is high-severity — Android 16 adoption is growing and all affected users crash when receiving in-app messages. We have a workaround in our integration layer, but a proper SDK fix is needed for all Iterable customers.

Thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions