languagetool-org/languagetool · error

Synthesize request failed

Error message

Synthesize request failed

What it means

gRPC error guard in RemoteSynthesizer.synthesize: synthesizing word forms for one of the request items threw (bad postag regexp, unsupported token input, or synthesizer data missing); the error is sent via responseObserver.onError.

Source

Thrown at languagetool-server/src/main/java/org/languagetool/server/RemoteSynthesizer.java:95

  @Override
  public void synthesize(org.languagetool.grpc.Synthesizer.SynthesizeRequest request, StreamObserver<org.languagetool.grpc.Synthesizer.SynthesizeResponse> responseObserver) {

    try {
      List<org.languagetool.grpc.Synthesizer.SynthesizeResponseItem> items = new ArrayList<>();

      for (org.languagetool.grpc.Synthesizer.SynthesizeRequestItem item : request.getItemsList()) {
        AnalyzedTokenReadings tokens = null;
        if (item.getPostagRegexp()) {
          tokens = GRPCUtils.fromGRPC(item.getTokens());
        }
        List<String> forms = synthesize(request.getLanguageCode(), tokens, item.getPostagRegexp(), item.getPostag(), item.getPostagReplace(), item.getLemma());
        items.add(org.languagetool.grpc.Synthesizer.SynthesizeResponseItem.newBuilder()
          .addAllForms(forms).build());
      }
      responseObserver.onNext(org.languagetool.grpc.Synthesizer.SynthesizeResponse.newBuilder().addAllItems(items).build());
      responseObserver.onCompleted();
    } catch(Exception e) {
      log.warn("Synthesize request failed", e);
      responseObserver.onError(e);
    }

  }
  private Options getCommandLineOptions() {
    Options options = new Options();
    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 cause
  2. Verify postag regexps in request items are valid
  3. Ensure the language's synthesizer dictionary is installed
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at languagetool-server/src/main/java/org/languagetool/server/RemoteSynthesizer.java:95 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/5092fe087ace4c72. Report an issue: GitHub.