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
- Check server logs for the underlying cause
- Verify postag regexps in request items are valid
- 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.