{"record":{"id":"a4a8000071200db4","repo":"elastic/elasticsearch","slug":"missing-field-fieldname-already-defined-as-m","errorCode":null,"errorMessage":"Missing field [{fieldName}] already defined as [{missing.get(fieldName)}] in [{aggregationName}].","messagePattern":"Missing field \\[(.+?)\\] already defined as \\[(.+?)\\] in \\[(.+?)\\]\\.","errorType":"validation","errorClass":"ParsingException","httpStatus":null,"severity":"error","filePath":"modules/aggregations/src/main/java/org/elasticsearch/aggregations/metric/ArrayValuesSourceParser.java","lineNumber":187,"sourceCode":"        }\n        return factory;\n    }\n\n    private static void parseMissingAndAdd(\n        final String aggregationName,\n        final String currentFieldName,\n        XContentParser parser,\n        final Map<String, Object> missing\n    ) throws IOException {\n        XContentParser.Token token = parser.currentToken();\n        if (token == null) {\n            token = parser.nextToken();\n        }\n\n        if (token == XContentParser.Token.FIELD_NAME) {\n            final String fieldName = parser.currentName();\n            if (missing.containsKey(fieldName)) {\n                throw new ParsingException(\n                    parser.getTokenLocation(),\n                    \"Missing field [\" + fieldName + \"] already defined as [\" + missing.get(fieldName) + \"] in [\" + aggregationName + \"].\"\n                );\n            }\n            parser.nextToken();\n            missing.put(fieldName, parser.objectText());\n        } else {\n            throw new ParsingException(\n                parser.getTokenLocation(),\n                \"Unexpected token \" + token + \" [\" + currentFieldName + \"] in [\" + aggregationName + \"]\"\n            );\n        }\n    }\n\n    /**\n     * Creates a {@link ValuesSourceAggregationBuilder} from the information\n     * gathered by the subclass. Options parsed in\n     * {@link ArrayValuesSourceParser} itself will be added to the factory","sourceCodeStart":169,"sourceCodeEnd":205,"githubUrl":"https://github.com/elastic/elasticsearch/blob/db6a809a667c081ca1dc7500389d26975573215f/modules/aggregations/src/main/java/org/elasticsearch/aggregations/metric/ArrayValuesSourceParser.java#L169-L205","documentation":"Error \"Missing field [{fieldName}] already defined as [{missing.get(fieldName)}] in [{aggregationName}].\" thrown in elastic/elasticsearch.","triggerScenarios":"Thrown at modules/aggregations/src/main/java/org/elasticsearch/aggregations/metric/ArrayValuesSourceParser.java:187 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"db6a809a667c081ca1dc7500389d26975573215f","analyzedAt":"2026-08-12T01:39:14.192Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}