elastic/elasticsearch · error · IllegalArgumentException

At most 100 synonym sets may be specified in [synonyms_set]

Error message

At most 100 synonym sets may be specified in [synonyms_set]

What it means

Error "At most 100 synonym sets may be specified in [synonyms_set]" thrown in elastic/elasticsearch.

Source

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

                    LOGGER.warn(
                        "Duplicate synonym set names in [{}] for filter [{}]; duplicates will be ignored: {}",
                        SynonymsSource.INDEX.getSettingName(),
                        factory.name(),
                        duplicates
                    );
                }
                if (synonymsSets.isEmpty()) {
                    return new ReaderWithOrigin(new StringReader(""), "empty synonyms_set " + synonymsSets, synonymsSets);
                }

                // Reject multi-set configs on partially-upgraded clusters at index creation time only.
                // Do NOT check during METADATA_VERIFICATION (recovery) or RELOAD_ANALYZERS — throwing
                // there would prevent shards from loading.
                if (synonymsSets.size() > 1 && context == IndexCreationContext.CREATE_INDEX) {
                    factory.synonymsManagementAPIService.checkClusterSupportsMultipleSynonymSets();
                }
                if (synonymsSets.size() > MAX_SYNONYM_SETS_PER_FILTER) {
                    throw new IllegalArgumentException(
                        "At most "
                            + MAX_SYNONYM_SETS_PER_FILTER
                            + " synonym sets may be specified in ["
                            + SynonymsSource.INDEX.getSettingName()
                            + "]"
                    );
                }
                // provide empty synonyms on index creation and index metadata checks to ensure that we
                // don't block a master thread
                if (context != IndexCreationContext.RELOAD_ANALYZERS) {
                    return new ReaderWithOrigin(
                        new StringReader(""),
                        "fake empty " + synonymsSets + " synonyms_set in .synonyms index",
                        synonymsSets
                    );
                }

                return new ReaderWithOrigin(

View on GitHub (pinned to db6a809a66)

When it happens

Trigger: Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/SynonymTokenFilterFactory.java:102 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/17d16dcf8f2ca11f. Report an issue: GitHub.