{"record":{"id":"d867a99bf498e2a2","repo":"languagetool-org/languagetool","slug":"invalid-syntax-for-key-value-expected-key-value","errorCode":null,"errorMessage":"Invalid syntax for key/value, expected 'key:value', got: '${arg}'","messagePattern":"Invalid syntax for key/value, expected 'key:value', got: '(.+?)'","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"languagetool-core/src/main/java/org/languagetool/rules/patterns/RegexRuleFilterEvaluator.java","lineNumber":53,"sourceCode":"  private final RegexRuleFilter filter;\n\n  public RegexRuleFilterEvaluator(RegexRuleFilter filter) {\n    this.filter = filter;\n  }\n\n  @Nullable\n  public RuleMatch runFilter(String filterArgs, RuleMatch ruleMatch, AnalyzedSentence sentenceObj, Matcher patternMatcher) {\n    Map<String,String> args = getResolvedArguments(filterArgs);\n    return filter.acceptRuleMatch(ruleMatch, args, sentenceObj, patternMatcher);\n  }\n\n  private Map<String,String> getResolvedArguments(String filterArgs) {\n    Map<String,String> result = new HashMap<>();\n    String[] arguments = filterArgs.split(\"\\\\s+\");\n    for (String arg : arguments) {\n      int delimPos = arg.indexOf(':');\n      if (delimPos == -1) {\n        throw new RuntimeException(\"Invalid syntax for key/value, expected 'key:value', got: '\" + arg + \"'\");\n      }\n      String key = arg.substring(0, delimPos);\n      String val = arg.substring(delimPos + 1);\n      result.put(key, val);\n    }\n    return result;\n  }\n\n}\n","sourceCodeStart":35,"sourceCodeEnd":63,"githubUrl":"https://github.com/languagetool-org/languagetool/blob/2e990059ce67d5e2a0f7f7ca5d31160c6709df4b/languagetool-core/src/main/java/org/languagetool/rules/patterns/RegexRuleFilterEvaluator.java#L35-L63","documentation":"Argument-parsing guard in RegexRuleFilterEvaluator.getResolvedArguments: while splitting the filter's args attribute on whitespace, a token was found that does not contain the 'key:value' separator, so it cannot be turned into a filter argument. The faulty input is the args string of the <filter> element, which must be a space-separated list of key:value pairs.","triggerScenarios":"Thrown at languagetool-core/src/main/java/org/languagetool/rules/patterns/RegexRuleFilterEvaluator.java:53 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Write the filter arguments as key:value pairs separated by spaces, e.g. args=\"antiPatterns:foo|bar caseSensitive:yes\"","Add the missing colon to the argument token reported in the exception","Remove stray whitespace-only or malformed tokens from the args attribute"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2e990059ce67d5e2a0f7f7ca5d31160c6709df4b","analyzedAt":"2026-09-06T09:20:17.015Z","contentChangedAt":"2026-09-06T09:20:17.015Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}