{"record":{"id":"0ba2a686e92bd3a6","repo":"elastic/elasticsearch","slug":"unsupported-token-token","errorCode":null,"errorMessage":"Unsupported token [{token}]","messagePattern":"Unsupported token \\[(.+?)\\]","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/aggregations/src/main/java/org/elasticsearch/aggregations/pipeline/BucketSortPipelineAggregationBuilder.java","lineNumber":77,"sourceCode":"            List<SortBuilder<?>> sorts = SortBuilder.fromXContent(p);\n            List<FieldSortBuilder> fieldSorts = new ArrayList<>(sorts.size());\n            for (SortBuilder<?> sort : sorts) {\n                if (sort instanceof FieldSortBuilder == false) {\n                    throw new IllegalArgumentException(\n                        \"[\" + NAME + \"] only supports field based sorting; incompatible sort: [\" + sort + \"]\"\n                    );\n                }\n                fieldSorts.add((FieldSortBuilder) sort);\n            }\n            return fieldSorts;\n        }, SearchSourceBuilder.SORT_FIELD, ObjectParser.ValueType.OBJECT_ARRAY);\n        PARSER.declareInt(BucketSortPipelineAggregationBuilder::from, FROM);\n        PARSER.declareInt(BucketSortPipelineAggregationBuilder::size, SIZE);\n        PARSER.declareField(BucketSortPipelineAggregationBuilder::gapPolicy, p -> {\n            if (p.currentToken() == XContentParser.Token.VALUE_STRING) {\n                return GapPolicy.parse(p.text().toLowerCase(Locale.ROOT), p.getTokenLocation());\n            }\n            throw new IllegalArgumentException(\"Unsupported token [\" + p.currentToken() + \"]\");\n        }, GAP_POLICY, ObjectParser.ValueType.STRING);\n    }\n\n    private List<FieldSortBuilder> sorts = Collections.emptyList();\n    private int from = 0;\n    private Integer size;\n    private GapPolicy gapPolicy = GapPolicy.SKIP;\n\n    public BucketSortPipelineAggregationBuilder(String name, List<FieldSortBuilder> sorts) {\n        super(name, NAME, sorts == null ? new String[0] : sorts.stream().map(FieldSortBuilder::getFieldName).toArray(String[]::new));\n        this.sorts = sorts == null ? Collections.emptyList() : sorts;\n    }\n\n    /**\n     * Read from a stream.\n     */\n    public BucketSortPipelineAggregationBuilder(StreamInput in) throws IOException {\n        super(in, NAME);","sourceCodeStart":59,"sourceCodeEnd":95,"githubUrl":"https://github.com/elastic/elasticsearch/blob/db6a809a667c081ca1dc7500389d26975573215f/modules/aggregations/src/main/java/org/elasticsearch/aggregations/pipeline/BucketSortPipelineAggregationBuilder.java#L59-L95","documentation":"Error \"Unsupported token [{token}]\" thrown in elastic/elasticsearch.","triggerScenarios":"Thrown at modules/aggregations/src/main/java/org/elasticsearch/aggregations/pipeline/BucketSortPipelineAggregationBuilder.java:77 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"analyzedSha":"db6a809a667c081ca1dc7500389d26975573215f","analyzedAt":"2026-08-12T01:39:14.192Z","schemaVersion":2},"datasetVersion":"2026-08-12T06:17:24.410Z"}