{"record":{"id":"bfbbaa3ebd61734a","repo":"webpack/webpack","slug":"failed-to-fetch-update-manifest-response-statu","errorCode":null,"errorMessage":"Failed to fetch update manifest \" + response.statusText","messagePattern":"Failed to fetch update manifest \" \\+ response\\.statusText","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"lib/web/JsonpChunkLoadingRuntimeModule.js","lineNumber":385,"sourceCode":"\t\t\t\t\t\t\t\t\"}\"\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t)};`,\n\t\t\t\t\t\t\"\",\n\t\t\t\t\t\tgenerateJavascriptHMR(\"jsonp\")\n\t\t\t\t\t])\n\t\t\t\t: \"// no HMR\",\n\t\t\t\"\",\n\t\t\twithHmrManifest\n\t\t\t\t? Template.asString([\n\t\t\t\t\t\t`${\n\t\t\t\t\t\t\tRuntimeGlobals.hmrDownloadManifest\n\t\t\t\t\t\t} = ${runtimeTemplate.basicFunction(\"\", [\n\t\t\t\t\t\t\t'if (typeof fetch === \"undefined\") throw new Error(\"No browser support: need fetch API\");',\n\t\t\t\t\t\t\t`return fetch(${RuntimeGlobals.publicPath} + ${\n\t\t\t\t\t\t\t\tRuntimeGlobals.getUpdateManifestFilename\n\t\t\t\t\t\t\t}()).then(${runtimeTemplate.basicFunction(\"response\", [\n\t\t\t\t\t\t\t\t\"if(response.status === 404) return; // no update available\",\n\t\t\t\t\t\t\t\t'if(!response.ok) throw new Error(\"Failed to fetch update manifest \" + response.statusText);',\n\t\t\t\t\t\t\t\t\"return response.json();\"\n\t\t\t\t\t\t\t])});`\n\t\t\t\t\t\t])};`\n\t\t\t\t\t])\n\t\t\t\t: \"// no HMR manifest\",\n\t\t\t\"\",\n\t\t\twithOnChunkLoad\n\t\t\t\t? `${\n\t\t\t\t\t\tRuntimeGlobals.onChunksLoaded\n\t\t\t\t\t}.j = ${runtimeTemplate.returningFunction(\n\t\t\t\t\t\t\"installedChunks[chunkId] === 0\",\n\t\t\t\t\t\t\"chunkId\"\n\t\t\t\t\t)};`\n\t\t\t\t: \"// no on chunks loaded\",\n\t\t\t\"\",\n\t\t\twithCallback || withLoading\n\t\t\t\t? Template.asString([\n\t\t\t\t\t\t\"// install a JSONP callback for chunk loading\",","sourceCodeStart":367,"sourceCodeEnd":403,"githubUrl":"https://github.com/webpack/webpack/blob/638ce7119541739a41f8bd143719eda37fd29237/lib/web/JsonpChunkLoadingRuntimeModule.js#L367-L403","documentation":"Runtime error in the JsonpChunkLoading HMR manifest downloader: `fetch(publicPath + manifestFilename)` returned a response whose `.ok` is false (non-2xx, non-404 status). 404 is treated as 'no update' and silently ignored; any other failure status throws with the response's statusText appended.","triggerScenarios":"During HMR, the dev server returns 500/403/etc. for the update manifest request — proxy misconfiguration, auth wall, dev server crash, or publicPath pointing at the wrong host.","commonSituations":"Reverse proxies in front of webpack-dev-server that block or rewrite the hot-update manifest URL. Auth middleware rejecting the manifest request. publicPath mismatch between build and serve host. Dev server restarted while the page held a stale manifest URL.","solutions":["Open the manifest URL (the path shown after publicPath) directly in the browser to see the real status/body.","Correct `output.publicPath` and devServer proxy config so the manifest is reachable.","Ensure auth/proxy middleware in front of devServer allows the hot-update manifest route.","Restart the dev server and refresh the page to re-sync the expected manifest filename."],"exampleFix":"// before: publicPath 'https://cdn.example.com/' but dev server is on localhost\noutput: { publicPath: 'https://cdn.example.com/' }\n\n// after\noutput: { publicPath: '/' } // or the dev server origin","handlingStrategy":"try-catch","validationCode":"// Probe the manifest endpoint at dev-server startup.\nconst r = await fetch(publicPath + getUpdateManifestFilename());\nif (!r.ok && r.status !== 404) throw new Error('manifest endpoint unhealthy: ' + r.status);","typeGuard":null,"tryCatchPattern":"try {\n  await __webpack_require__.hmrDownloadManifest();\n} catch (e) {\n  if (/Failed to fetch update manifest/.test(e.message)) console.warn('HMR manifest unavailable; updates disabled');\n}","preventionTips":["Keep publicPath reachable from the browser at dev time.","Configure devServer proxy/auth to allow the hot-update manifest route.","Watch the Network tab for the manifest request status during HMR setup."],"tags":["hmr","runtime","network","dev-server","jsonp"],"backgroundTag":null,"analyzedSha":"638ce7119541739a41f8bd143719eda37fd29237","analyzedAt":"2026-08-11T19:46:52.703Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}