languagetool-org/languagetool · error
Process request failed
Error message
Process request failed
What it means
gRPC error guard in GRPCServer.process: checking the request's sentences with the pipeline threw; the exception is reported to the gRPC client through responseObserver.onError.
Source
Thrown at languagetool-server/src/main/java/org/languagetool/server/GRPCServer.java:107
// .map(GRPCUtils::fromGRPC).collect(Collectors.toList());
// TODO: rawMatches should have all results, regardless of mode/level/tempOff/...
List<RuleMatch> rawMatches = new ArrayList<>();
String text = request.getSentencesList().stream().map(s -> s.getText()).collect(Collectors.joining());
List<RuleMatch> matches = pipeline.check(text, m -> rawMatches.add(m));
// TODO use checkInternal again
// CheckResults results = pipeline.checkAnalyzedSentences(sentences, m -> rawMatches.add(m));
ProcessResponse response = ProcessResponse.newBuilder()
.addAllRawMatches(rawMatches.stream().map(GRPCUtils::toGRPC).collect(Collectors.toList()))
// .addAllMatches(results.getRuleMatches().stream().map(GRPCUtils::toGRPC).collect(Collectors.toList()))
.addAllMatches(matches.stream().map(GRPCUtils::toGRPC).collect(Collectors.toList()))
.build();
responseObserver.onNext(response);
log.info("Sending response: {}", response);
responseObserver.onCompleted();
} catch (Exception e) {
log.warn("Process request failed", e);
responseObserver.onError(e);
}
}
private Options getCommandLineOptions() {
Options options = new Options();
options.addOption(Option.builder().longOpt("config").hasArg().required().build());
options.addOption(Option.builder().longOpt("port").hasArg().build());
options.addOption(Option.builder().longOpt("cert").hasArg().build());
options.addOption(Option.builder().longOpt("key").hasArg().build());
return options;
}
private CommandLine parseCommandLine(String[] args) throws ParseException {
CommandLineParser parser = new DefaultParser();
return parser.parse(getCommandLineOptions(), args);
}
View on GitHub (pinned to 2e990059ce)
Solutions
- Check server logs for the underlying pipeline exception
- Verify the request sentences and options are well-formed
- Ensure pipeline resources (models, pools) are correctly configured
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at languagetool-server/src/main/java/org/languagetool/server/GRPCServer.java:107 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/7302147693a9ef66.
Report an issue: GitHub.