#11450·languagetool

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:

logs
2025-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