{
  "id": 8552879,
  "title": "Your Inertia SSR server is down and your site still returns 200",
  "url": "https://urgent.news/2026/09/19/your-inertia-ssr-server-is-down-and-your-site-still-returns-200",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-09-19T22:29:38.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/datum_games/your-inertia-ssr-server-is-down-and-your-site-still-returns-200-3hc7"
  },
  "original_language": "en",
  "account": "The site appeared to function normally, with all pages loading correctly and the styling intact. However, a problem lay beneath the surface. Search Console had only crawled two pages out of the entire sitemap, leaving the rest marked as 'Discovered - currently not indexed'. Dozens of posts were sitting in limbo, with no broken pages to point to. The issue stemmed from a process that had ceased running, not crashing but simply stopping. The consequence was that only hidden clients noticed the problem, while the majority were oblivious.\n\nThe stack in play included Laravel 12, Inertia.js, and React 19, with server-side rendering enabled. The process 'inertia:start-ssr' initiated a small Node server that loaded the built server bundle and rendered the page. On each request, Laravel submitted the page object to this Node server, which in turn returned the HTML for the page. The '@inertia' Blade directive then printed this HTML within a div with id 'app'. When the Node process failed to respond, Laravel defaulted to client-side rendering, generating an empty div with id 'app' containing the page props, and sending the response with a 200 status code. This invisible failure evaded those who checked for it, but affected those without JavaScript execution, including search crawlers, link unfurlers, and HTTP libraries.\n\nThe problem was not immediately detectable as there were no signs in the site's behavior, uptime checks, status codes, or screenshots. It was only in the response body, where the content was essentially empty, making it unsuitable for indexing. The failure occurred due to the Node process stopping and Laravel failing the request, but not loudly. It could have been caused by the process not being supervised, the server bundle throwing an error at render time, or a stale bundle being used. The only way to detect this issue was to act as the crawler, fetching the page, removing the scripts, and counting the remaining characters.",
  "summary": "The site looked fine. Every page loaded, every blog post rendered, the styling was right, nothing in the logs. What was wrong was that Search Console had crawled two pages out of the entire sitemap, and the rest sat in Discovered – currently not indexed . Dozens of posts, almost nothing indexed, and no broken page anywhere to point at. The cause turned out to be a process that had stopped…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}