elastic/elasticsearch · error · IllegalArgumentException

Can't apply [synonyms_set]! Loading synonyms from index is s

Error message

Can't apply [synonyms_set]! Loading synonyms from index is supported only for search time synonyms!

What it means

Error "Can't apply [synonyms_set]! Loading synonyms from index is supported only for search time synonyms!" thrown in elastic/elasticsearch.

Source

Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SynonymTokenFilterFactory.java:70

            @Override
            public ReaderWithOrigin getRulesReader(SynonymTokenFilterFactory factory, IndexCreationContext context) {
                List<String> rulesList = Analysis.getWordList(
                    factory.environment,
                    factory.settings,
                    SynonymsSource.INLINE.getSettingName()
                );
                StringBuilder sb = new StringBuilder();
                for (String line : rulesList) {
                    sb.append(line).append(System.lineSeparator());
                }
                return new ReaderWithOrigin(new StringReader(sb.toString()), "'" + factory.name() + "' analyzer settings");
            }
        },
        INDEX("synonyms_set") {
            @Override
            public ReaderWithOrigin getRulesReader(SynonymTokenFilterFactory factory, IndexCreationContext context) {
                if (factory.analysisMode != AnalysisMode.SEARCH_TIME) {
                    throw new IllegalArgumentException(
                        "Can't apply ["
                            + SynonymsSource.INDEX.getSettingName()
                            + "]! Loading synonyms from index is supported only for search time synonyms!"
                    );
                }
                Set<String> synonymsSets = new LinkedHashSet<>();
                Set<String> duplicates = new LinkedHashSet<>();
                for (String s : factory.settings.getAsList(SynonymsSource.INDEX.getSettingName())) {
                    if (synonymsSets.add(s) == false) {
                        duplicates.add(s);
                    }
                }
                if (duplicates.isEmpty() == false) {
                    LOGGER.warn(
                        "Duplicate synonym set names in [{}] for filter [{}]; duplicates will be ignored: {}",
                        SynonymsSource.INDEX.getSettingName(),
                        factory.name(),
                        duplicates

View on GitHub (pinned to db6a809a66)

When it happens

Trigger: Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SynonymTokenFilterFactory.java:70 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of elastic/elasticsearch@db6a809a66 (2026-08-12). Data as JSON: /api/errors/92ff45fc09194940. Report an issue: GitHub.