if a subrequest was finished and SSI was in middle of SSI command parsing and the command was a fast subrequest then the second subrequest output was just after first subrequest output and response part of main request between the subrequests went after the second subrequest.
diff --git a/src/http/modules/ngx_http_ssi_filter_module.c b/src/http/modules/ngx_http_ssi_filter_module.c index 5343ca0..549ae4c 100644 --- a/src/http/modules/ngx_http_ssi_filter_module.c +++ b/src/http/modules/ngx_http_ssi_filter_module.c
@@ -800,8 +800,14 @@ } } - if (cmd->flush && ctx->out) { - rc = ngx_http_ssi_output(r, ctx); + if (cmd->flush) { + + if (ctx->out) { + rc = ngx_http_ssi_output(r, ctx); + + } else { + rc = ngx_http_next_body_filter(r, NULL); + } if (rc == NGX_ERROR) { return NGX_ERROR;