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

  1. Ensure getManualAdditionsFileNames() files exist in the language's resource directory
  2. Fix the encoding/format of the manual additions file (UTF-8, tab-separated word/lemma/POS lines)
  3. 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.