KCEF WebView lacks WebView.getFactory(), so extensions using the new runWebView client-hint helpers time out

Author: Kincade120Created Sep 12, 2026Updated Sep 19, 2026
Labelsbug

Steps to reproduce

  1. Run Suwayomi-Server v2.3.2358-preview with any extension built after keiyoushi's "update runWebView helpers to spoof sec-ch-*" (keiyoushi/extensions-source#18815, merged 2026-09-04). AllManga (en.allanime) v1.6.27 / v1.6.28 is one such extension.
  2. Pick any chapter that is NOT already downloaded (a downloaded one reads its page list from the local CBZ and hides the bug).
  3. Run mutation { fetchChapterPages(input:{chapterId: N}) { pages } }, or just queue the chapter for download.
  4. The call hangs for 30s and fails.

Expected behavior

The page list is returned, as it is for extensions that do not use the updated runWebView helper (e.g. Comix en.comix v1.6.38 works fine on the same server, same egress, at the same time).

Actual behavior

Timed out waiting for WebView after 30s, preceded in every case by the WebView glue failing to probe for User-Agent Client Hints support:

ERROR android.util.Log -- [KeiyoushiWebView.WebViewGlueBridge]: isFeatureSupported("USER_AGENT_METADATA")
java.lang.NoSuchMethodException: android.webkit.WebView.getFactory()
	at java.base/java.lang.Class.getDeclaredMethod(Unknown Source)
	at keiyoushi.c.a.a.a(Unknown Source)
	at keiyoushi.b.o.a(Unknown Source)
	at eu.kanade.tachiyomi.a.a.a.B.a(Unknown Source)
INFO  android.util.Log -- [KeiyoushiWebView.WebViewGlueBridge]: USER_AGENT_METADATA not supported

WARN suwayomi.tachidesk.manga.impl.download.Downloader source(4709139914729853090) - downloadChapter(...) -- failed due to
keiyoushi.b.C: Timed out waiting for WebView after 30s
	at keiyoushi.b.x.invokeSuspend(Unknown Source)

KcefWebViewProvider does not implement android.webkit.WebView.getFactory(), so the probe throws, client hints are never set, the Cloudflare challenge the helper exists to pass never completes, and the fetch dies at the 30s latch.

Chapter lists still fetch fine (fetchChapters works) - only page lists fail, so the library keeps updating and nothing looks wrong until you try to read or download.

Suwayomi-Server version

v2.3.2358 (r2358, Preview)

Used database

H2

Server operating system

Ubuntu 24.04.4 LTS (container on k3s)

Server Desktop Environment

headless, Xvfb + KCEF

Server JVM version

openjdk 25.0.3 2026-04-21 LTS

Used client name

Suwayomi-WebUI

Client version

r3379 (STABLE)

Used web browser

Chrome

Client operating system

macOS

Other details

This is not the network, the exit IP, cookies, or CEF state

Each ruled out with a single-variable test from inside the same container:

Hypothesis Test Result
Site or IP blocked FlareSolverr request.get on the same stalled URL, same egress Solves in 11s, returns the real page
Stale/flagged cookies clearCookiesAndCache, nothing else changed No effect
CEF degraded over process lifetime Killed the server process so only that container restarted; pod, network namespace and exit IP unchanged No effect
Bad VPN exit Rotated to a fresh exit No effect

Timeline

Download file timestamps across the upstream change, same library, same server build:

Sept 4 00:00-07:00   882 chapters downloaded   AllManga v1.6.26
Sept 4 07:09         keiyoushi#18815 merged
Sept 4 onward        ~16 chapters, then zero   AllManga v1.6.27
Sept 9               still zero                AllManga v1.6.28

Tested again on 7 different queued titles on v1.6.28: 7 of 7 time out.

Impact

Every series on an affected source becomes unreadable and undownloadable while chapter lists keep updating normally. Not AllManga-specific - any extension adopting the helper is affected (the same change was applied to MangaFire in keiyoushi/extensions-source#18848).

Suggested fix

Implement getFactory() / the USER_AGENT_METADATA feature probe in KcefWebViewProvider, or have it report the feature unsupported in a way the helper can fall back from instead of throwing NoSuchMethodException.

Supersedes #2340, which I filed without the bug report template

Acknowledgements

  • I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
  • I have checked the ongoing preview changelog of Suwayomi-WebUI and Suwayomi-Server and this bug has NOT been listed as fixed
  • I have written a short but informative title (ideally less than ~100 characters).
  • I have tried the troubleshooting guide described in README.md
  • I have updated the (Suwayomi-WebUI and Suwayomi-Server) to the latest versions
  • I have filled out all of the requested information in this form, including specific version numbers.
  • I understand that Suwayomi does not have or fix any extensions, and I will not receive help for any issues related to sources or extensions.

Source: Suwayomi/Suwayomi-Server