# \_delete\_by\_query returns "Gateway Timeout"

**URL:** <https://discuss.elastic.co/t/delete-by-query-returns-gateway-timeout/108648>\
**Category:** Elasticsearch\
**Created:** [November 22, 2017, 6:24am UTC](https://discuss.elastic.co/t/delete-by-query-returns-gateway-timeout/108648 "2017-11-22T06:24:50Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![sanditech](https://avatars.discourse-cdn.com/v4/letter/s/eb8c5e/32.png) [@sanditech](https://discuss.elastic.co/u/sanditech)\
**Post date:** [November 22, 2017, 6:24am UTC](https://discuss.elastic.co/t/delete-by-query-returns-gateway-timeout/108648/1 "2017-11-22T06:24:50Z")

</div>

Hi,

I am sending my logs to elasticsearch (v5.6) and want to discard logs that are older than 'x' days.  
I tried to run \_delete\_by\_query to achieve so.

There is Kibana (v5.6.1) interface through which I access the data.

Here is how query looks like

GET {IndexName}/\_delete\_by\_query?conflicts=proceed&timeout=10m  
{  
"query": {  
"range" : {  
"@timestamp" : {  
"gte" : "2017-11-12T10:50:00.000Z",  
"lt" : "2017-11-12T11:00:59.942Z"  
}  
}  
}  
}

Here is response

{  
"statusCode": 504,  
"error": "Gateway Timeout",  
"message": "Client request timeout"  
}

I added ?conflicts=proceed&timeout=10m to improve reliability. But it still gives timeout.

One thing to note is that the behavior is inconsistent and mostly depends on amount of data that is getting deleted.  
Trying for larger date range causes timeout to occur more frequently. But sometimes it can't even delete in 5 minute range.

What am I missing here? Why parameter timeout=10m is neglected here? Any other way to enforce timeout? Can I delete based on @timestamp in any other way?

---

<div class="post-metadata">

**Author:** ![Christian\_Dahlqvist](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/christian_dahlqvist/32/4617_2.png) [@Christian\_Dahlqvist](https://discuss.elastic.co/u/Christian_Dahlqvist)\
**Post date:** [November 22, 2017, 8:12am UTC](https://discuss.elastic.co/t/delete-by-query-returns-gateway-timeout/108648/2 "2017-11-22T08:12:16Z")

</div>

If you have log data and a limited retention period, why are you not using [time-based indices](https://www.elastic.co/guide/en/elasticsearch/guide/2.x/time-based.html)?

---

<div class="post-metadata">

**Author:** ![sanditech](https://avatars.discourse-cdn.com/v4/letter/s/eb8c5e/32.png) [@sanditech](https://discuss.elastic.co/u/sanditech)\
**Post date:** [November 22, 2017, 8:49am UTC](https://discuss.elastic.co/t/delete-by-query-returns-gateway-timeout/108648/3 "2017-11-22T08:49:36Z")

</div>

Thanks for your help.

I had no knowledge of time-based indices.  
Turns out, they were already enabled by my team member.  
I tried using delete index method and it works well.

Thanks again.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [December 20, 2017, 8:49am UTC](https://discuss.elastic.co/t/delete-by-query-returns-gateway-timeout/108648/4 "2017-12-20T08:49:47Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
