Troubleshooting
Fix curl_cffi installs, Cloudflare walls, slow downloads, and reader issues.
downloadcurl_cffi won't install
info Wheels are prebuilt for CPython 3.8–3.13, so on a normal setup this should never happen. If your platform has no wheel, build from source:
# Linux build deps
sudo apt install libcurl4-openssl-dev python3-dev
pip install --no-binary curl_cffi curl_cffi
# Fedora
sudo dnf install libcurl-devel
shield“Just a moment...” / Cloudflare 403
This is a bot wall. Two fixes:
- Start FlareSolverr on port 8191 (
python start_flaresolverr.py) for the handful of protected sources. - Or switch the browser fingerprint:
MANGASURF_IMPERSONATE=firefox python gui.py.
speedDownloads are slow
Confirm use_async is on (default). Behind a proxy, curl_cffi honors HTTP_PROXY / HTTPS_PROXY — set them before launching. The batch engine avoids one round-trip per page, so a whole chapter usually arrives in about one page's latency.
checklistWrong downloaded count
Refresh the library (Settings → Rescan All Books) so each series' manga.json chapter list is current; the badge reads from there.
pages“Load more” says No More Results after one page
Several sources used to ignore the page number and hand back the same first
page every time, so the front-end deduplicated them into nothing. This is
fixed for comicland (its API paginates by a row offset, not
?page=), mangatitan (pages ≥2 use a blog-archive layout),
and yurivan (it now slices by page). On mangak the Trending
browse is a static top-50 list by design — that page genuinely has no page 2,
so use search, which paginates.
imageCovers not loading on a source
If covers show a placeholder or never render, the host is refusing a
cross-origin browser request (usually a wrong Referer) — MangaDex, Webtoons,
Manhwa68, Hentai18 and Yurivan are all hotlink-sensitive. Those thumbnails are
routed through proxy_cover, which fetches the image in Python with
the right Referer and hands back a data URI. If one still fails, the host's
CDN may have rotated its URL scheme; the cover URL under
~/.mangasurf/logs will show what happened.
bug_reportYurivan returns nothing / dead sources
Yurivan gates every page behind a client-side age gate, so server-side scraping is best-effort — prefer the other adult sources. For any source that times out or 404s, check it isn't Cloudflare-protected (the source should set needs_flaresolverr) and confirm the domain still resolves.
check_circle Still stuck? Open an issue on GitHub with the source id, the query, and the exact URL — the log file under ~/.mangasurf/ helps a lot.