KCEF WebView lacks WebView.getFactory(), so extensions using the new runWebView client-hint helpers time out
Steps to reproduce
- Run Suwayomi-Server v2.3.2358-preview with any extension built after keiyoushi's
"update
runWebViewhelpers to spoofsec-ch-*" (keiyoushi/extensions-source#18815, merged 2026-09-04). AllManga (en.allanime) v1.6.27 / v1.6.28 is one such extension. - Pick any chapter that is NOT already downloaded (a downloaded one reads its page list from the local CBZ and hides the bug).
- Run
mutation { fetchChapterPages(input:{chapterId: N}) { pages } }, or just queue the chapter for download. - 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.28Tested 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