Skip to main content

status_for

Function status_for 

Source
fn status_for(r: Rejected) -> Status
Expand description

Map a rejection onto a gRPC status.

Overload is never a partial success: the OTLP spec says the client MUST NOT retry a partial success, so using it for backpressure destroys the data and records the failure as the sender’s fault. It is always a status code, and always with RetryInfo attached — grpc-retry-pushback-ms alone is only honoured by clients that configured a gRPC retry policy, which OTLP exporters do not.

The retryable set is closed and INTERNAL is not in it, so it is reserved for the one refusal that really is permanent. A write that failed on a full disk answered INTERNAL would have the exporter drop the batch it is holding rather than send it again a second later, which is data loss chosen by a status code.