🩹 What changed for you
If your Kobo says "Sync failed, please try again" behind nginx, this release has the fix. It's a documentation + reference-config change — not a code change. nginx's default proxy_buffer_size (4 KB) is too small for CWA's Kobo sync response headers, so nginx silently drops the response. The CWA log shows nothing; the device just says "Sync failed." Add these three lines to your nginx site config:
proxy_buffer_size 32k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;The README now has a full Kobo-sync nginx section with Synology DSM + Nginx Proxy Manager-specific notes, and there's a copy-paste-ready reference config at examples/nginx-reverse-proxy.conf.
Loading spinner in admin restart/status modals and the three config pages no longer renders at full gif dimensions — pinned at 48×48 in CSS so future gif swaps can't regress it.
📥 Get it
docker pull ghcr.io/new-usemame/calibre-web-nextgen:latest
# or pin:
docker pull ghcr.io/new-usemame/calibre-web-nextgen:v4.0.139
Includes everything from v4.0.137 (admin-visible logs + sanitized debug pack + KOReader-sync log coverage) and v4.0.138 (manual duplicate-scan button no longer refused on stale marker).
🙏 Credit
- @Glennza1962 (#308) and @Gusdezup (#331) — both independently traced the nginx buffer-size root cause; this release ships the docs+config so future users hit the answer in one search.
- @jbelascoain (#326) — spotted the spinner audit. His PR is closed as superseded with credit; the CSS-layer fix preserves his intent without the giant-spinner regression.
📋 Full change
Single PR: #335. 13 source-pinning regression tests, Greptile 5/5 confidence. See CHANGES-vs-upstream.md for technical detail.