Safari Technology Preview 250 fixes a Web Inspector bug where enabling the 'Ignore Cache' toggle would overwrite a page-authored Cache-Control request header with WebKit's own no-cache value, even when the page had explicitly set a different value like max-age=12345. Before the fix, WebKit conflated bypassing its local resource cache with rewriting the outgoing request's caching semantics. The fix separates the two: the internal ReloadIgnoringCacheData policy still bypasses the local cache, but WebKit now only adds no-cache headers if the request doesn't already contain page-authored Cache-Control or Pragma headers. This narrow bug only affected requests where Web Inspector had disabled caching and the page had already set its own Cache-Control header, potentially causing confusing debugging sessions where server logs showed headers the application never actually sent.
Table of contents
Web Inspector Was Changing the Outgoing RequestThis Is a Cache-Control Request HeaderCache Bypass and Request Semantics Are Now SeparateHow This Could Trip You UpQuestions this post answers
Why did Safari Web Inspector's Ignore Cache option change my Cache-Control request header to no-cache?
Before Safari Technology Preview 250, enabling Ignore Cache in Web Inspector caused WebKit to set the outgoing request's Cache-Control and Pragma headers to no-cache even when the page had already set its own Cache-Control value, such as max-age=12345. This overwrote the page-authored header before it reached the network. Safari Technology Preview 250 fixed this so WebKit only adds no-cache headers when the request doesn't already contain page-authored caching headers. daily.dev surfaces browser devtools fixes like this so caching bugs don't derail your debugging session.
Does disabling the resource cache in Safari Web Inspector still bypass caching after the fix in Safari Technology Preview 250?
Yes, the internal ReloadIgnoringCacheData policy that bypasses WebKit's local resource cache is still applied when Ignore Cache is toggled on. What changed is that WebKit no longer overwrites a page-authored Cache-Control or Pragma header to force this behavior; it only sets those headers when the request doesn't already contain them, keeping cache bypass and request header semantics separate. track browser devtools quirks like this on daily.dev before they cost you a debugging session.