Спасибо @remy lebeau
response.FreeContentStream := true;
Это решение.
Моя функция:
function TGetData.articleZippedImages(skip, take: Integer; since: string) : TStream;
функция не освобождает поток !
procedure TWebModule1.WebModuleAfterDispatch(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
response.FreeContentStream := true;
Response.Content := '';
Response.CustomHeaders.Values['Content-Disposition'] := 'attachment; filename=test.zip';
Response.SendResponse;
end;