Index template update overrides mapping

Hello all,

I am trying to update default apm index template's settings field by sending PUT request to the _template endpoint. My problem is that the request overrides the mappings field as well, hence, I loose the default mappings. Even though, I've read in multiple discussions that it is possible to update an index template, I am not able to do it without loosing configurations.

Is there anyone facing a similar problem?

I am using Elasticsearch 7.3.

Here are my steps:

  • apm-server creates an index template (will not copy here as it is quite long), here are the settings of apm:
setup.template.enabled: true
setup.template.fields: "${path.config}/fields.yml"
setup.template.overwrite: false 'apm-tmpl'
setup.template.pattern: 'apm-*'
  • I applied the following 'update':
curl -X PUT "localhost:9200/_template/apm-tmpl?pretty" -H 'Content-Type: application/json' -d'
  "index_patterns": ["apm-*"],
  "settings": {
    "": "custom",
    "index.number_of_replicas": 0
  • and finally here is the updated template (with empty mappings):
curl -X GET "localhost:9200/_template/apm-tmpl?pretty" -H 'Content-Type: application/json'

  "apm-tmpl" : {
    "order" : 0,
    "index_patterns" : [
    "settings" : {
      "index" : {
        "lifecycle" : {
          "name" : "custom"
         number_of_replicas": 0
    "mappings" : { },
    "aliases" : { }

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