diff --git a/backend/src/Squidex.Web/Pipeline/CachingFilter.cs b/backend/src/Squidex.Web/Pipeline/CachingFilter.cs index bab2cff5d..295ba28f4 100644 --- a/backend/src/Squidex.Web/Pipeline/CachingFilter.cs +++ b/backend/src/Squidex.Web/Pipeline/CachingFilter.cs @@ -28,16 +28,17 @@ namespace Squidex.Web.Pipeline public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { - cachingManager.Start(context.HttpContext); + var httpContext = context.HttpContext; + + cachingManager.Start(httpContext); var resultContext = await next(); - if (resultContext.HttpContext.Response.Headers.TryGetString(HeaderNames.ETag, out var etag)) + if (httpContext.Response.HasStarted == false && + httpContext.Response.Headers.TryGetString(HeaderNames.ETag, out var etag) && + IsCacheable(httpContext, etag)) { - if (IsCacheable(resultContext.HttpContext, etag)) - { - resultContext.Result = new StatusCodeResult(304); - } + resultContext.Result = new StatusCodeResult(304); } }