{"record":{"id":"8c4d71894de295c5","repo":"elastic/elasticsearch","slug":"invalid-escaped-char-in-c","errorCode":null,"errorMessage":"Invalid escaped char in [{c}]","messagePattern":"Invalid escaped char in \\[(.+?)\\]","errorType":"validation","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CharGroupTokenizerFactory.java","lineNumber":56,"sourceCode":"        maxTokenLength = settings.getAsInt(MAX_TOKEN_LENGTH, CharTokenizer.DEFAULT_MAX_WORD_LEN);\n\n        for (final String c : settings.getAsList(\"tokenize_on_chars\")) {\n            if (c == null || c.length() == 0) {\n                throw new RuntimeException(\"[tokenize_on_chars] cannot contain empty characters\");\n            }\n\n            if (c.length() == 1) {\n                tokenizeOnChars.add((int) c.charAt(0));\n            } else if (c.charAt(0) == '\\\\') {\n                tokenizeOnChars.add((int) parseEscapedChar(c));\n            } else {\n                switch (c) {\n                    case \"letter\" -> tokenizeOnLetter = true;\n                    case \"digit\" -> tokenizeOnDigit = true;\n                    case \"whitespace\" -> tokenizeOnSpace = true;\n                    case \"punctuation\" -> tokenizeOnPunctuation = true;\n                    case \"symbol\" -> tokenizeOnSymbol = true;\n                    default -> throw new RuntimeException(\"Invalid escaped char in [\" + c + \"]\");\n                }\n            }\n        }\n    }\n\n    private static char parseEscapedChar(final String s) {\n        int len = s.length();\n        char c = s.charAt(0);\n        if (c == '\\\\') {\n            if (1 >= len) throw new RuntimeException(\"Invalid escaped char in [\" + s + \"]\");\n            c = s.charAt(1);\n            switch (c) {\n                case '\\\\':\n                    return '\\\\';\n                case 'n':\n                    return '\\n';\n                case 't':\n                    return '\\t';","sourceCodeStart":38,"sourceCodeEnd":74,"githubUrl":"https://github.com/elastic/elasticsearch/blob/db6a809a667c081ca1dc7500389d26975573215f/modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CharGroupTokenizerFactory.java#L38-L74","documentation":"Error \"Invalid escaped char in [{c}]\" thrown in elastic/elasticsearch.","triggerScenarios":"Thrown at modules/analysis-common/src/main/java/org/elasticsearch/analysis/common/CharGroupTokenizerFactory.java:56 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-12T12:31:55.035Z"}