**Build scan:**
https://gradle-enterprise.elastic.co/s/7n7jeelm5hkhm/tests/:modules:data-streams:yamlRestTest/org.elasticsearch.datastreams.DataStreamsClientYamlTestSuiteIT/test%20%7Bp0=data_stream%2F10_basic%2FCreate%20data%20stream%20with%20failure%20store%7D


**Reproduction line:**
```
./gradlew ':modules:data-streams:yamlRestTest' --tests "org.elasticsearch.datastreams.DataStreamsClientYamlTestSuiteIT.test {p0=data_stream/10_basic/Create data stream with failure store}" -Dtests.seed=E268B87E7C171CAF -Dbuild.snapshot=false -Dtests.jvm.argline="-Dbuild.snapshot=false" -Dtests.locale=es-SV -Dtests.timezone=Pacific/Kanton -Druntime.java=21
```

**Applicable branches:**
main

**Reproduces locally?:**
Didn't try

**Failure history:**
https://es-delivery-stats.elastic.dev/app/dashboards#/view/dcec9e60-72ac-11ee-8f39-55975ded9e63?_g=(refreshInterval:(pause:!t,value:60000),time:(from:now-7d%2Fd,to:now))&_a=(controlGroupInput:(chainingSystem:HIERARCHICAL,controlStyle:twoLine,ignoreParentSettings:(ignoreFilters:!f,ignoreQuery:!f,ignoreTimerange:!f,ignoreValidations:!t),panels:('0c0c9cb8-ccd2-45c6-9b13-96bac4abc542':(explicitInput:(dataViewId:fbbdc689-be23-4b3d-8057-aa402e9ed0c5,enhancements:(),fieldName:task.keyword,grow:!t,id:'0c0c9cb8-ccd2-45c6-9b13-96bac4abc542',searchTechnique:wildcard,selectedOptions:!(),singleSelect:!t,title:'Gradle%20Task',width:medium),grow:!t,order:0,type:optionsListControl,width:small),'144933da-5c1b-4257-a969-7f43455a7901':(explicitInput:(dataViewId:fbbdc689-be23-4b3d-8057-aa402e9ed0c5,enhancements:(),fieldName:name.keyword,grow:!t,id:'144933da-5c1b-4257-a969-7f43455a7901',searchTechnique:wildcard,selectedOptions:!('test%20%7Bp0%3Ddata_stream/10_basic/Create%20data%20stream%20with%20failure%20store%7D'),title:Test,width:medium),grow:!t,order:2,type:optionsListControl,width:medium),'4e6ad9d6-6fdc-4fcc-bf1a-aa6ca79e0850':(explicitInput:(dataViewId:fbbdc689-be23-4b3d-8057-aa402e9ed0c5,enhancements:(),fieldName:className.keyword,grow:!t,id:'4e6ad9d6-6fdc-4fcc-bf1a-aa6ca79e0850',searchTechnique:wildcard,selectedOptions:!('org.elasticsearch.datastreams.DataStreamsClientYamlTestSuiteIT'),title:Suite,width:medium),grow:!t,order:1,type:optionsListControl,width:medium))))


**Failure excerpt:**
```
java.lang.AssertionError: Failure at [data_stream/10_basic:216]: expected [2xx] status code but api [indices.put_index_template] returned [400 Bad Request] [---
error:
  root_cause:
  - type: "x_content_parse_exception"
    reason: "[3:3] [data_stream_template] unknown field [failure_store]"
    stack_trace: "org.elasticsearch.ElasticsearchException$1: [3:3] [data_stream_template]\
      \ unknown field [failure_store]\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:672)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:668)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:600)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestResponse.build(RestResponse.java:180)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:140)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:111)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleException(SecurityRestFilter.java:106)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$1(SecurityRestFilter.java:86)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onFailure(ActionListener.java:185)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:179)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:236)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:79)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:441)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:570)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:325)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:458)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:554)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:431)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:194)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:137)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.lambda$requestStart$1(Netty4HttpHeaderValidator.java:120)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:106)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
      \tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: org.elasticsearch.xcontent.XContentParseException:\
      \ [3:3] [data_stream_template] unknown field [failure_store]\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareField$10(ObjectParser.java:431)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:609)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:107)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:46)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:94)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:85)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:177)\n\
      \t... 41 more\n"
  type: "x_content_parse_exception"
  reason: "[3:18] [index_template] failed to parse field [data_stream]"
  caused_by:
    type: "x_content_parse_exception"
    reason: "[3:3] [data_stream_template] unknown field [failure_store]"
    stack_trace: "org.elasticsearch.xcontent.XContentParseException: [3:3] [data_stream_template]\
      \ unknown field [failure_store]\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareField$10(ObjectParser.java:431)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:609)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:107)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:46)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:94)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:85)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:177)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:236)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:79)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:441)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:570)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:325)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:458)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:554)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:431)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:194)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:137)\n\
      \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.lambda$requestStart$1(Netty4HttpHeaderValidator.java:120)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:106)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\
      \tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
      \tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
      \tat java.base/java.lang.Thread.run(Thread.java:1583)\n"
  stack_trace: "org.elasticsearch.xcontent.XContentParseException: [3:18] [index_template]\
    \ failed to parse field [data_stream]\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.throwFailedToParse(ObjectParser.java:616)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:611)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:107)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:46)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
    \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:94)\n\
    \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:85)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:177)\n\
    \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:236)\n\
    \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)\n\
    \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)\n\
    \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:79)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:441)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:570)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:325)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:458)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:554)\n\
    \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:431)\n\
    \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
    \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
    \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
    \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:194)\n\
    \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:137)\n\
    \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.lambda$requestStart$1(Netty4HttpHeaderValidator.java:120)\n\
    \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)\n\
    \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:106)\n\
    \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\
    \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\
    \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\
    \tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)\n\
    \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
    \tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
    \tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: org.elasticsearch.xcontent.XContentParseException:\
    \ [3:3] [data_stream_template] unknown field [failure_store]\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareField$10(ObjectParser.java:431)\n\
    \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:609)\n\
    \t... 50 more\n"
status: 400
]

  at __randomizedtesting.SeedInfo.seed([E268B87E7C171CAF:6A3C87A4D2EB7157]:0)
  at org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase.executeSection(ESClientYamlSuiteTestCase.java:572)
  at org.elasticsearch.test.rest.yaml.ESClientYamlSuiteTestCase.test(ESClientYamlSuiteTestCase.java:524)
  at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
  at java.lang.reflect.Method.invoke(Method.java:580)
  at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1758)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$8.evaluate(RandomizedRunner.java:946)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:982)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:996)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
  at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  at org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
  at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:843)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:490)
  at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:955)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:840)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:891)
  at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:902)
  at org.elasticsearch.test.cluster.local.DefaultLocalElasticsearchCluster$1.evaluate(DefaultLocalElasticsearchCluster.java:47)
  at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
  at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
  at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
  at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
  at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
  at org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
  at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:390)
  at com.carrotsearch.randomizedtesting.ThreadLeakControl.lambda$forkTimeoutingTask$0(ThreadLeakControl.java:850)
  at java.lang.Thread.run(Thread.java:1583)

  Caused by: java.lang.AssertionError: expected [2xx] status code but api [indices.put_index_template] returned [400 Bad Request] [---
  error:
    root_cause:
    - type: "x_content_parse_exception"
      reason: "[3:3] [data_stream_template] unknown field [failure_store]"
      stack_trace: "org.elasticsearch.ElasticsearchException$1: [3:3] [data_stream_template]\
        \ unknown field [failure_store]\n\tat org.elasticsearch.server@8.12.0/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:672)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.ElasticsearchException.guessRootCauses(ElasticsearchException.java:668)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.ElasticsearchException.generateFailureXContent(ElasticsearchException.java:600)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestResponse.build(RestResponse.java:180)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:140)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestResponse.<init>(RestResponse.java:111)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleException(SecurityRestFilter.java:106)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$1(SecurityRestFilter.java:86)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onFailure(ActionListener.java:185)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:179)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:236)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:79)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:441)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:570)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:325)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:458)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:554)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:431)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:194)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:137)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.lambda$requestStart$1(Netty4HttpHeaderValidator.java:120)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:106)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
        \tat java.base/java.lang.Thread.run(Thread.java:1583)\nCaused by: org.elasticsearch.xcontent.XContentParseException:\
        \ [3:3] [data_stream_template] unknown field [failure_store]\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareField$10(ObjectParser.java:431)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:609)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:107)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:46)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:94)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:85)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:177)\n\
        \t... 41 more\n"
    type: "x_content_parse_exception"
    reason: "[3:18] [index_template] failed to parse field [data_stream]"
    caused_by:
      type: "x_content_parse_exception"
      reason: "[3:3] [data_stream_template] unknown field [failure_store]"
      stack_trace: "org.elasticsearch.xcontent.XContentParseException: [3:3] [data_stream_template]\
        \ unknown field [failure_store]\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$errorOnUnknown$2(ObjectParser.java:105)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:299)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.lambda$declareField$10(ObjectParser.java:431)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:609)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
        \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:107)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:46)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:94)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.lambda$handleRequest$0(SecurityRestFilter.java:85)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListener$2.onResponse(ActionListener.java:177)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.lambda$authenticateAndAttachToContext$3(SecondaryAuthenticator.java:99)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:236)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticate(SecondaryAuthenticator.java:109)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.authc.support.SecondaryAuthenticator.authenticateAndAttachToContext(SecondaryAuthenticator.java:90)\n\
        \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.handleRequest(SecurityRestFilter.java:79)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:441)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.tryAllHandlers(RestController.java:570)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.RestController.dispatchRequest(RestController.java:325)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.dispatchRequest(AbstractHttpServerTransport.java:458)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.handleIncomingRequest(AbstractHttpServerTransport.java:554)\n\
        \tat org.elasticsearch.server@8.12.0/org.elasticsearch.http.AbstractHttpServerTransport.incomingRequest(AbstractHttpServerTransport.java:431)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.handlePipelinedRequest(Netty4HttpPipeliningHandler.java:128)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpPipeliningHandler.channelRead(Netty4HttpPipeliningHandler.java:118)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageCodec.channelRead(MessageToMessageCodec.java:111)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat io.netty.codec@4.1.94.Final/io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardData(Netty4HttpHeaderValidator.java:194)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.forwardFullRequest(Netty4HttpHeaderValidator.java:137)\n\
        \tat org.elasticsearch.transport.netty4@8.12.0/org.elasticsearch.http.netty4.Netty4HttpHeaderValidator.lambda$requestStart$1(Netty4HttpHeaderValidator.java:120)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.PromiseTask.run(PromiseTask.java:106)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)\n\
        \tat io.netty.transport@4.1.94.Final/io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)\n\
        \tat io.netty.common@4.1.94.Final/io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\
        \tat java.base/java.lang.Thread.run(Thread.java:1583)\n"
    stack_trace: "org.elasticsearch.xcontent.XContentParseException: [3:18] [index_template]\
      \ failed to parse field [data_stream]\n\tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.throwFailedToParse(ObjectParser.java:616)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseValue(ObjectParser.java:611)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parseSub(ObjectParser.java:629)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ObjectParser.parse(ObjectParser.java:315)\n\
      \tat org.elasticsearch.xcontent@8.12.0/org.elasticsearch.xcontent.ConstructingObjectParser.parse(ConstructingObjectParser.java:166)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.cluster.metadata.ComposableIndexTemplate.parse(ComposableIndexTemplate.java:107)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.action.admin.indices.RestPutComposableIndexTemplateAction.prepareRequest(RestPutComposableIndexTemplateAction.java:46)\n\
      \tat org.elasticsearch.server@8.12.0/org.elasticsearch.rest.BaseRestHandler.handleRequest(BaseRestHandler.java:80)\n\
      \tat org.elasticsearch.security@8.12.0/org.elasticsearch.xpack.security.rest.SecurityRestFilter.doHandleRequest(SecurityRestFilter.java:...
```
modules/data-streams/src/javaRestTest/java/org/elasticsearch/datastreams/lifecycle/DataStreamLifecyclePermissionsRestIT.java
}
                }
              }
            }""");
        assertOK(adminClient().performRequest(mappingsRequest));
        String settingsTemplateName = name + "_settings";
        Request settingsRequest = new Request("PUT", "/_component_template/" + settingsTemplateName);
        settingsRequest.setJsonEntity("""
            {
              "template": {
                  "settings": {
                    "number_of_shards": 1,
                    "number_of_replicas": 0
                  }
              }
            }""");
        assertOK(adminClient().performRequest(settingsRequest));
        Request indexTemplateRequest = new Request("PUT", "/_index_template/" + name + "_template");
        indexTemplateRequest.setJsonEntity(Strings.format("""
            {
                "index_patterns": ["%s*"],
                "data_stream": { },
                "composed_of": [ "%s", "%s" ]
            }""", name, mappingsTemplateName, settingsTemplateName));
        assertOK(adminClient().performRequest(indexTemplateRequest));
        Request request = new Request("PUT", "/_data_stream/" + name);
        assertOK(adminClient().performRequest(request));
    }
}