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
- 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
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.