{"record":{"id":"5d9ecc4c66e265da","repo":"languagetool-org/languagetool","slug":"could-not-load-manual-tagger-data-from-getmanu","errorCode":null,"errorMessage":"Could not load manual tagger data from \" + getManualAdditionsFileNames()","messagePattern":"Could not load manual tagger data from \" \\+ getManualAdditionsFileNames\\(\\)","errorType":"exception","errorClass":"RuntimeException","httpStatus":null,"severity":"error","filePath":"languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java","lineNumber":162,"sourceCode":"              stream = new SequenceInputStream(stream, url.openStream());\n            }\n          }\n        }\n        if (stream != null) {\n          ManualTagger manualTagger = new ManualTagger(stream, internTags);\n          //long loadTime = System.currentTimeMillis() - startTime;\n          //System.out.println(\"Loading \" + getManualAdditionsFileNames() + \" took \" + loadTime + \"ms\");\n          return new CombiningTagger(morfologikTagger, manualTagger, removalTagger, overwriteWithManualTagger());\n        } else {\n          return morfologikTagger;\n        }\n      } finally {\n        if (stream != null) {\n          stream.close();\n        }\n      }\n    } catch (IOException e) {\n      throw new RuntimeException(\"Could not load manual tagger data from \" + getManualAdditionsFileNames(), e);\n    }\n  }\n\n  protected Dictionary getDictionary() {\n    return dictionary;\n  }\n\n  @Override\n  public List<AnalyzedTokenReadings> tag(List<String> sentenceTokens)\n      throws IOException {\n    List<AnalyzedTokenReadings> tokenReadings = new ArrayList<>();\n    int pos = 0;\n    for (String word : sentenceTokens) {\n      List<AnalyzedToken> l = getAnalyzedTokens(word);\n      tokenReadings.add(new AnalyzedTokenReadings(l, pos));\n      pos += word.length();\n    }\n    return tokenReadings;","sourceCodeStart":144,"sourceCodeEnd":180,"githubUrl":"https://github.com/languagetool-org/languagetool/blob/2e990059ce67d5e2a0f7f7ca5d31160c6709df4b/languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java#L144-L180","documentation":"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.","triggerScenarios":"Thrown at languagetool-core/src/main/java/org/languagetool/tagging/BaseTagger.java:162 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","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"],"exampleFix":null,"handlingStrategy":"fallback","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-14T00:17:10.932Z"}