I get `h2 protocol error: http2 error` when the message in tonic::Status is too large
- Dominant language
- Rust
- Stars
- 12.5k
- Forks
- 1.3k
- Avg merge
- 4d 7h
- Merged PRs (30d)
- 24
Description
## Bug Report
### Version
`v0.12.3`
### Platform
`Linux 6.6.80 #1-NixOS SMP PREEMPT_DYNAMIC Thu Feb 27 12:10:54 UTC 2025 x86_64 GNU/Linux`
### Description
I'm writing tests to test error handling on bad user arguments and to ensure correct errors are returned. I fire requests sequentially, so nothing racy.
For some of my requests, tonic returns `h2 protocol error: http2 error` instead of the error I expect. I traced down my server code until I actually return a `tonic::Status::invalid_argument` from my server implementation method, but somehow it comes back as `h2 protocol error: http2 error`.
Since I'm dumping the full stack trace into the message passed into `tonic::Status::invalid_argument`, I thought maybe there are some limits on body size. Which seems to be the case. I shortened the message and it works fine.
This seems to be quite unintuitive. Why is there a limit on error body? Why is this not documented anywhere, but instead silently results in a weird internal http2 error?
Contributor guide
Assessment
This issue has not been assessed yet.