return(restart); and ESI

Rangel, Raul Raul.Rangel at
Wed Mar 13 23:05:39 CET 2013

A restart in an esi will restart only the ESI. There is no way to restart the parent. The parent could have been sent to the client already so a restart is impossible.


From: varnish-misc-bounces at [mailto:varnish-misc-bounces at] On Behalf Of Hugues Alary
Sent: Wednesday, March 13, 2013 3:40 PM
To: varnish-misc at
Subject: return(restart); and ESI


I'm unclear about the behavior that Varnish will have if there's a return(restart); happening when Varnish is processing an ESI include.

If I do a return(restart); in vcl_fetch(), when req.esi_level > 0 (meaning that the current request is an <esi:include src="" /> being processed by Varnish), will Varnish restart the parent request, or will it restart only the <esi:include /> ?

My gut tells me that Varnish will only restart the esi processing, can someone confirm that?

In the case the previous statement is true, is there any way I could instruct Varnish to restart the parent?

I feel like restarting the parent request should be possible considering that when Varnish processes an <esi:include />, the req.esi_level > 0, meaning that Varnish is aware that this request has a parent. Although it certainly is way more complicated than that.

Thanks for your help!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the varnish-misc mailing list