languagetool-org/languagetool · error · RuntimeException

Unknown link prefix: ${ruleLink}

Error message

Unknown link prefix: ${ruleLink}

What it means

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.

Source

Thrown at languagetool-standalone/src/main/java/org/languagetool/gui/RuleLink.java:56

  static RuleLink buildDeactivationLink(Rule rule) {
    return new RuleLink(DEACTIVATE_URL, rule.getId());
  }

  static RuleLink buildReactivationLink(Rule rule) {
    return new RuleLink(REACTIVATE_URL, rule.getId());
  }

  static RuleLink getFromString(String ruleLink) {
    String id;
    if (ruleLink.startsWith(DEACTIVATE_URL)) {
      id = ruleLink.substring(DEACTIVATE_URL.length());
      return new RuleLink(DEACTIVATE_URL, id);
    } else if (ruleLink.startsWith(REACTIVATE_URL)) {
      id = ruleLink.substring(REACTIVATE_URL.length());
      return new RuleLink(REACTIVATE_URL, id);
    } else {
      throw new RuntimeException("Unknown link prefix: " + ruleLink);
    }
  }

  String getId() {
    return id;
  }

  @Override
  public String toString() {
    return urlPrefix + id;
  }

}

View on GitHub (pinned to 2e990059ce)

Solutions

  1. Check the link string for typos or truncation
  2. Ensure the link was produced by buildDeactivationLink/buildReactivationLink with the current URL prefixes
  3. Update stale links saved by an older LanguageTool version to the current prefixes
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at languagetool-standalone/src/main/java/org/languagetool/gui/RuleLink.java:56 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of languagetool-org/languagetool@2e990059ce (2026-09-06). Data as JSON: /api/errors/7f84ea7b8ac41a2c. Report an issue: GitHub.