languagetool-org/languagetool · error · RuntimeException
Could not load manual tagger data from " + getManualAddition
Error message
Could not load manual tagger data from " + getManualAdditionsFileNames()
What it means
Wraps any IOException or RuntimeException thrown while opening and parsing the language's manual additions file (e.g. added.txt) from the resource dirs during BaseTagger initialization. It fires when the file is missing from the resource directory, unreadable, or malformed — i.e. the tagger cannot be built at all for that language, not a per-word tagging failure.
Source
Thrown at languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java:162
stream = new SequenceInputStream(stream, url.openStream());
}
}
}
if (stream != null) {
ManualTagger manualTagger = new ManualTagger(stream, internTags);
//long loadTime = System.currentTimeMillis() - startTime;
//System.out.println("Loading " + getManualAdditionsFileNames() + " took " + loadTime + "ms");
return new CombiningTagger(morfologikTagger, manualTagger, removalTagger, overwriteWithManualTagger());
} else {
return morfologikTagger;
}
} finally {
if (stream != null) {
stream.close();
}
}
} catch (IOException e) {
throw new RuntimeException("Could not load manual tagger data from " + getManualAdditionsFileNames(), e);
}
}
protected Dictionary getDictionary() {
return dictionary;
}
@Override
public List<AnalyzedTokenReadings> tag(List<String> sentenceTokens)
throws IOException {
List<AnalyzedTokenReadings> tokenReadings = new ArrayList<>();
int pos = 0;
for (String word : sentenceTokens) {
List<AnalyzedToken> l = getAnalyzedTokens(word);
tokenReadings.add(new AnalyzedTokenReadings(l, pos));
pos += word.length();
}
return tokenReadings;View on GitHub (pinned to 2e990059ce)
Solutions
- Ensure getManualAdditionsFileNames() files exist in the language's resource directory
- Fix the encoding/format of the manual additions file (UTF-8, tab-separated word/lemma/POS lines)
- Check that the resource is packaged and on the classpath in deployed builds
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java:162 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/5d9ecc4c66e265da.
Report an issue: GitHub.