error has occurred: 'Missing arguments for LanguageTool API.

HI there
I’m trying to deploy LanguageTool behing a Traefik proxy but for some reason requests getting to the LT instance are incorrect.
so when I try to access LT I get this error:

curl -X POST --header 'Content-Type: application/x-www-form-urlencoded' --header 'Accept: application/json' -d 'text=test&language=en-US&enabledOnly=false' 'https://spell.example.com'
Error: Missing arguments for LanguageTool API. Please see https://languagetool.org/http-api/swagger-ui/#/default

and this is LT log:

2025-02-14 11:49:49.578 GMT INFO  org.languagetool.server.LanguageToolHttpHandler Handling POST /
2025-02-14 11:49:49.580 GMT INFO  org.languagetool.server.LanguageToolHttpHandler An error has occurred: 'Missing arguments for LanguageTool API. Please see https://languagetool.org/http-api/
swagger-ui/#/default', sending HTTP code 400. Access from 127.0.0.1, HTTP user agent: curl/8.6.0, User agent param: null, Referrer: null, language: en-US, h: 1, r: 114, time: 1text length: 14
, m: ALL, l: DEFAULT, Stacktrace follows:org.languagetool.server.BadRequestException: Missing arguments for LanguageTool API. Please see https://languagetool.org/http-api/swagger-ui/#/default
        at org.languagetool.server.LanguageToolHttpHandler.handle(LanguageToolHttpHandler.java:210)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
        at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)
        at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:848)
        at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)
        at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:817)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
        at java.base/java.lang.Thread.run(Thread.java:829)

2025-02-14 11:49:49.581 GMT INFO  org.languagetool.server.LanguageToolHttpHandler Handled request in 3ms; sending code 400

Traefik dynamic configuration:

[http.routers.langtool]
entryPoints = ["websecure"]
rule= "Host(`spell.example.com`)"
service = "langtool"
[http.routers.langtool.tls]
certResolver="mainc"
[[http.services.langtool.loadBalancer.servers]]
url = "http://langtool:8010"

Is there a way to increase LT loglevel to inspect the final url getting to the service?

P.S. I used this guide to deploy using docker

You need to post to /v2/check, I don’t see that in your request or configuration. Also, you might want to leave out the --header arguments, I don’t think they are needed.

1 Like