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

  1. Check server logs for the underlying pipeline exception
  2. Verify the request sentences and options are well-formed
  3. 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.