homebrew packaged service throwing "Cannot read the array length because "<local2>" is null, detected: de-DE"
Author: QhilmCreated Jul 19, 2025Updated Jul 21, 2026
brew services start languagetool
then, on the first request I see this:
logs2025-07-19 18:16:16.507 GMT+02:00 ERROR org.languagetool.server.LanguageToolHttpHandler An error has occurred: 'java.lang.NullPointerException: Cannot read the array length because "<local2>" is null, detected: de-DE', sending HTTP code 500. Access from 127.0.0.1, HTTP user agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:140.0) Gecko/20100101 Firefox/140.0, User agent param: webextension-firefox-ng, v: 8.19.4, Referrer: null, language: auto, h: 2, r: 2, time: 878m: TEXTLEVEL_ONLY, l: PICKY, iID: 71683:1752941490543, Stacktrace follows:java.lang.RuntimeException: java.lang.NullPointerException: Cannot read the array length because "<local2>" is null, detected: de-DE
at org.languagetool.server.TextChecker.lambda$checkText$13(TextChecker.java:658)
at org.languagetool.tools.TelemetryProvider.createSpan(TelemetryProvider.java:54)
at org.languagetool.server.TextChecker.checkText(TextChecker.java:635)
at org.languagetool.server.ApiV2.handleCheckRequest(ApiV2.java:177)
at org.languagetool.server.ApiV2.lambda$handleRequest$4(ApiV2.java:87)
at org.languagetool.tools.TelemetryProvider.createSpan(TelemetryProvider.java:96)
at org.languagetool.server.ApiV2.handleRequest(ApiV2.java:87)
at org.languagetool.server.LanguageToolHttpHandler.lambda$handle$0(LanguageToolHttpHandler.java:213)
at org.languagetool.tools.TelemetryProvider.createSpan(TelemetryProvider.java:96)
at org.languagetool.server.LanguageToolHttpHandler.handle(LanguageToolHttpHandler.java:213)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:95)
at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:98)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:855)
at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:95)
at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:831)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot read the array length because "<local2>" is null
at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:191)
at org.languagetool.server.TextChecker.lambda$checkText$13(TextChecker.java:640)
... 18 more
Caused by: java.lang.NullPointerException: Cannot read the array length because "<local2>" is null
at org.languagetool.languagemodel.LuceneSingleIndexLanguageModel.validateDirectory(LuceneSingleIndexLanguageModel.java:63)
at org.languagetool.languagemodel.LuceneSingleIndexLanguageModel.doValidateDirectory(LuceneSingleIndexLanguageModel.java:109)
at org.languagetool.languagemodel.LuceneSingleIndexLanguageModel.<init>(LuceneSingleIndexLanguageModel.java:91)
at org.languagetool.languagemodel.LuceneLanguageModel.<init>(LuceneLanguageModel.java:65)
at org.languagetool.LanguageWithModel.initLanguageModel(LanguageWithModel.java:41)
at org.languagetool.LanguageWithModel.getLanguageModel(LanguageWithModel.java:23)
at org.languagetool.JLanguageTool.activateLanguageModelRules(JLanguageTool.java:588)
at org.languagetool.server.Pipeline.activateLanguageModelRules(Pipeline.java:110)
at org.languagetool.server.PipelinePool.lambda$createPipeline$1(PipelinePool.java:142)
at org.languagetool.tools.TelemetryProvider.createSpan(TelemetryProvider.java:76)
at org.languagetool.server.PipelinePool.createPipeline(PipelinePool.java:129)
at org.languagetool.server.PipelinePool.getPipeline(PipelinePool.java:84)
at org.languagetool.server.TextChecker.getPipelineResults(TextChecker.java:933)
at org.languagetool.server.TextChecker.getRuleMatches(TextChecker.java:913)
at org.languagetool.server.TextChecker.lambda$checkText$12(TextChecker.java:614)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
... 3 more
But if I start languagetool manually using /opt/homebrew/opt/languagetool/bin/languagetool-server --config /opt/homebrew/etc/languagetool/server.properties --port 8081 --allow-origin, it works just fine.
Any idea?
Source: languagetool-org/languagetool