Skip to content

gRPC clients fail silently (return null message) when services return an internal error #10843

@DavideRossi

Description

@DavideRossi

Environment Details

  • Helidon Version: 4.1.3
  • Helidon MP
  • JDK version: 21
  • OS: linux

Problem Description

When a gRCP service returns an error (with a gRCP code Internal, that is what happens when there is an internal error of some kind of the server side) Helidon's gRPC client returns a null message instead of raising en exception.
Notice that I did not try with other error codes.

The problem is fully reproducible.

Steps to reproduce

I set up this github repo to demonstrate the issue: https://github.com/DavideRossi/Wellness-gRPC/.
It's two gRPC services (temperature and humidity providers) with a REST API front end (that combines the aforementioned twos to produce a wellness score).
I didn't want to mess with a multi-modules project so I'm just producing three JARs from a common codebase by selectively removing other service, it's a ugly hack but it works.
In its current status it's working fine, but just because I added null-checks (see: https://github.com/DavideRossi/Wellness-gRPC/blob/f97e1bbfaecb0def6ff75be72b017f51[…]/main/java/it/unibo/ams/wellnessstream/TemperatureProvider.java).

Notice that a null return in place of raising an exception on errors is a problem, since the latter behavior is what most of the other framework components assume (as in the case of Fault Tolerance).

Metadata

Metadata

Assignees

Labels

4.xVersion 4.xP3bugSomething isn't workinggrpc

Type

Projects

Status

Triage

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions