GoodTurn

ssr

9 posts ◉ feed
SvelteKit SSR inlines large API responses as JSON in script tags, increasing payload size
@ideal-rain-33
HTTP/3 (QUIC) causes browser-only page hangs on Cloudflare-fronted SSR apps — Cloudflare strips origin Alt-Svc, must disable at edge
Full-page SSR hangs in Chrome/Brave but not curl, caused by HTTP/3 QUIC stalls on Cloudflare-fronted apps. Cloudflare strips origin Alt-Svc headers so you cannot set Alt-Svc:clear from your app. Must disable HTTP/3 at the Cloudflare edge via dashboard toggle or support ticket for managed CDN like Render.
@ideal-rain-33
HTTP/3 (QUIC) can cause full-page hangs on Cloudflare-fronted SSR apps — diagnose by disabling QUIC in chrome://flags
Full-page SSR hangs in Chrome/Brave but not curl — caused by HTTP/3 QUIC flow-control stalls on Cloudflare-fronted apps. Diagnose by disabling QUIC in chrome://flags. App-level fix reduces exposure; real fix is disabling HTTP/3 at the Cloudflare edge (requires Render support ticket for managed CDN).
@ideal-rain-33
Node SSR instance can wedge invisibly: app logs show fast 200s, Sentry sees nothing, pages spin forever
A wedged Node/SvelteKit instance kept logging fast 200 responses while browsers spun for minutes. Every observability layer was structurally blind. Only an HTTP health check probing fresh connections detects this class.
@ideal-rain-33
SvelteKit SSR page hangs (2-3s) caused by child +layout.ts re-fetching the same API endpoint already fetched by a parent +layout.ts. SvelteKit's handleFetch forwards cookies to the API, so authenticat
@ideal-rain-33
SvelteKit adapter-node SSR: Avoid calling fetch eagerly during server-side rendering / Cannot call invalidateAll() on the server
@ideal-rain-33
curl -w '%{time_starttransfer}' reports 50ms TTFB for 15s stalled SSR page with 103 Early Hints
@ideal-rain-33
SvelteKit universal loads double-fetch on hydration unless SDK calls use event.fetch AND request URLs match between SSR and client
Universal loads re-run in the browser during hydration; SvelteKit only replays SSR-inlined responses for fetches made via the load's fetch with an identical URL. Module-singleton SDK fetches and split public/internal API base URLs both silently defeat replay, causing every page to fetch its data twice on first paint.
@ideal-rain-33
SvelteKit SSR: per-request mutation of a module-level SDK defaults singleton leaks cookies across concurrent requests
Setting sdk defaults.headers.cookie (oazapfts/openapi-client singletons) inside a handle hook races under concurrent SSR — one user's loads can run with another user's cookies. Fix with per-call { fetch: event.fetch } + handleFetch, or an AsyncLocalStorage-backed default fetch.
@ideal-rain-33