{"record":{"id":"1fd40654b8852765","repo":"elastic/elasticsearch","slug":"cannot-use-stored-scripts-in-tokenfilter-name","errorCode":null,"errorMessage":"Cannot use stored scripts in tokenfilter [{name}]","messagePattern":"Cannot use stored scripts in tokenfilter \\[(.+?)\\]","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/PredicateTokenFilterScriptFactory.java","lineNumber":36,"sourceCode":"import org.elasticsearch.script.ScriptService;\nimport org.elasticsearch.script.ScriptType;\n\nimport java.io.IOException;\n\n/**\n * A factory for creating FilteringTokenFilters that determine whether or not to\n * accept their underlying token by consulting a script\n */\npublic class PredicateTokenFilterScriptFactory extends AbstractTokenFilterFactory {\n\n    private final AnalysisPredicateScript.Factory factory;\n\n    public PredicateTokenFilterScriptFactory(IndexSettings indexSettings, String name, Settings settings, ScriptService scriptService) {\n        super(name);\n        Settings scriptSettings = settings.getAsSettings(\"script\");\n        Script script = Script.parse(scriptSettings);\n        if (script.getType() != ScriptType.INLINE) {\n            throw new IllegalArgumentException(\"Cannot use stored scripts in tokenfilter [\" + name + \"]\");\n        }\n        this.factory = scriptService.compile(script, AnalysisPredicateScript.CONTEXT);\n    }\n\n    @Override\n    public TokenStream create(TokenStream tokenStream) {\n        return new ScriptFilteringTokenFilter(tokenStream, factory.newInstance());\n    }\n\n    private static class ScriptFilteringTokenFilter extends FilteringTokenFilter {\n\n        final AnalysisPredicateScript script;\n        final AnalysisPredicateScript.Token token;\n\n        ScriptFilteringTokenFilter(TokenStream in, AnalysisPredicateScript script) {\n            super(in);\n            this.script = script;\n            this.token = new AnalysisPredicateScript.Token(this);","sourceCodeStart":18,"sourceCodeEnd":54,"githubUrl":"https://github.com/elastic/elasticsearch/blob/db6a809a667c081ca1dc7500389d26975573215f/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/PredicateTokenFilterScriptFactory.java#L18-L54","documentation":"Error \"Cannot use stored scripts in tokenfilter [{name}]\" thrown in elastic/elasticsearch.","triggerScenarios":"Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/PredicateTokenFilterScriptFactory.java:36 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-13T04:17:16.726Z"}