{"record":{"id":"7f84ea7b8ac41a2c","repo":"languagetool-org/languagetool","slug":"unknown-link-prefix-rulelink","errorCode":null,"errorMessage":"Unknown link prefix: ${ruleLink}","messagePattern":"Unknown link prefix: (.+?)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"languagetool-standalone/src/main/java/org/languagetool/gui/RuleLink.java","lineNumber":56,"sourceCode":"\n  static RuleLink buildDeactivationLink(Rule rule) {\n    return new RuleLink(DEACTIVATE_URL, rule.getId());\n  }\n\n  static RuleLink buildReactivationLink(Rule rule) {\n    return new RuleLink(REACTIVATE_URL, rule.getId());\n  }\n\n  static RuleLink getFromString(String ruleLink) {\n    String id;\n    if (ruleLink.startsWith(DEACTIVATE_URL)) {\n      id = ruleLink.substring(DEACTIVATE_URL.length());\n      return new RuleLink(DEACTIVATE_URL, id);\n    } else if (ruleLink.startsWith(REACTIVATE_URL)) {\n      id = ruleLink.substring(REACTIVATE_URL.length());\n      return new RuleLink(REACTIVATE_URL, id);\n    } else {\n      throw new RuntimeException(\"Unknown link prefix: \" + ruleLink);\n    }\n  }\n\n  String getId() {\n    return id;\n  }\n\n  @Override\n  public String toString() {\n    return urlPrefix + id;\n  }\n\n}\n","sourceCodeStart":38,"sourceCodeEnd":70,"githubUrl":"https://github.com/languagetool-org/languagetool/blob/2e990059ce67d5e2a0f7f7ca5d31160c6709df4b/languagetool-standalone/src/main/java/org/languagetool/gui/RuleLink.java#L38-L70","documentation":"Parsing guard in RuleLink.getFromString: the hyperlink string matches neither the deactivation nor reactivation URL prefix (nor any other known prefix), so its rule-id payload cannot be extracted. The input at fault is the ruleLink string.","triggerScenarios":"Thrown at languagetool-standalone/src/main/java/org/languagetool/gui/RuleLink.java:56 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the link string for typos or truncation","Ensure the link was produced by buildDeactivationLink/buildReactivationLink with the current URL prefixes","Update stale links saved by an older LanguageTool version to the current prefixes"],"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"}