gRPC status 13: INTERNAL
INTERNAL is gRPC status code 13. An invariant the system relies on broke. Something is seriously wrong on the server or in the transport.
Updated
Usual causes
- The response could not be parsed: the client's and server's message definitions do not match, or one side sent bytes that are not the message.
- A proxy returned something that is not gRPC, such as an HTML error page or an HTTP/1.1 response.
- Decompression failed, or a frame was malformed.
- The server raised
INTERNALitself for a bug it detected.
What to check
- That both sides use the same
.proto: a changed field type between versions breaks parsing. - Anything between you and the server, such as a load balancer answering in HTTP/1.1 or a missing
h2protocol setting. - The server's logs for the call.
What it looks like
A typical error, as a Go client prints it: rpc error: code = Internal desc = grpc: failed to unmarshal the received message: proto: cannot parse invalid wire-format data
Retry, and the HTTP equivalent
| INTERNAL | |
|---|---|
| Code | 13 |
| Name | INTERNAL |
| In istek's status bar | internal |
| Retry | Rarely helps; treat it as a bug to find. |
| HTTP status | 500 |
istek names the status of every call it makes, internal included, and explains transport failures in plain words. See istek.