It is forbidden to create dynamic nested objects – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 6.8-7.15

Briefly, this error occurs when you try to create dynamic nested objects in Elasticsearch, which is not allowed. This usually happens when you’re indexing documents with fields that Elasticsearch hasn’t seen before, and those fields contain nested objects. To resolve this issue, you can either predefine the nested fields in your index mapping or set the “dynamic” parameter to “true” or “strict” in your index settings. If you choose “strict”, Elasticsearch will reject any unknown field, while “true” will allow Elasticsearch to automatically add new fields.

This guide will help you check for common problems that cause the log ” It is forbidden to create dynamic nested objects ([ ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: index.

Log Context

Log “It is forbidden to create dynamic nested objects ([” class name is DocumentParser.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 "but it's configured as [" + fieldMapper.typeName() + "] in dynamic template [" +
 context.sourceToParse().dynamicTemplates().get(currentPath) + "]");
 }
 mapper = (ObjectMapper) fieldMapper;
 if (mapper.isNested()) {
 throw new MapperParsingException("It is forbidden to create dynamic nested objects (["
 + currentPath + "]) through `copy_to` or dots in field names");
 }
 context.addDynamicMapper(mapper);
 }
 }

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?