{"record":{"id":"46a8aabfdc36da5f","repo":"languagetool-org/languagetool","slug":"analyze-request-failed","errorCode":null,"errorMessage":"Analyze request failed","messagePattern":"Analyze request failed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"languagetool-server/src/main/java/org/languagetool/server/GRPCServer.java","lineNumber":71,"sourceCode":"   */\n  public void analyze(org.languagetool.rules.ml.MLServerProto.AnalyzeRequest request,\n      io.grpc.stub.StreamObserver<org.languagetool.rules.ml.MLServerProto.AnalyzeResponse> responseObserver) {\n    if (pool == null) {\n      responseObserver.onError(new IllegalStateException(\"Pool not initialized\"));\n      return;\n    }\n    try {\n      log.info(\"Handling analyze request\");\n       PipelineSettings settings = buildSettings(request.getOptions());\n       Pipeline pipeline = pool.getPipeline(settings);\n       List<AnalyzedSentence> sentences = pipeline.analyzeText(request.getText());\n      AnalyzeResponse response = AnalyzeResponse.newBuilder()\n         .addAllSentences(sentences.stream().map(GRPCUtils::toGRPC).collect(Collectors.toList()))\n        .build();\n      responseObserver.onNext(response);\n      responseObserver.onCompleted();\n    } catch (Exception e) {\n      log.warn(\"Analyze request failed\", e);\n      responseObserver.onError(e);\n    }\n  }\n\n  /**\n   */\n  public void process(org.languagetool.rules.ml.MLServerProto.ProcessRequest request,\n      io.grpc.stub.StreamObserver<org.languagetool.rules.ml.MLServerProto.ProcessResponse> responseObserver) {\n    if (pool == null) {\n      responseObserver.onError(new IllegalStateException(\"Pool not initialized\"));\n      return;\n    }\n    try {\n      log.info(\"Handling process request: {}\", request);\n      PipelineSettings settings = buildSettings(request.getOptions());\n      Pipeline pipeline = pool.getPipeline(settings);\n      // List<AnalyzedSentence> sentences = request.getSentencesList().stream()\n      //   .map(GRPCUtils::fromGRPC).collect(Collectors.toList());","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/languagetool-org/languagetool/blob/2e990059ce67d5e2a0f7f7ca5d31160c6709df4b/languagetool-server/src/main/java/org/languagetool/server/GRPCServer.java#L53-L89","documentation":"gRPC error guard in GRPCServer.analyze: processing an AnalyzeRequest (settings build, pipeline fetch, or text analysis) threw, and the failure is propagated to the client via responseObserver.onError.","triggerScenarios":"Thrown at languagetool-server/src/main/java/org/languagetool/server/GRPCServer.java:71 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the server logs for the underlying exception cause","Verify request options are valid PipelineSettings","Ensure the pipeline pool is initialized and not exhausted"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"2e990059ce67d5e2a0f7f7ca5d31160c6709df4b","analyzedAt":"2026-09-06T09:20:17.015Z","contentChangedAt":"2026-09-06T09:20:17.015Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}