-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow client-side parsing of the grpc-status-details-bin
#5485
Comments
Unfortunately, this feature was not well defined (e.g. there was no gRFC) when it was implemented. The three languages all have different implementations based on their interpretations of the definition. Your best bet for now for cross-language compatibility is to always use a
Since this is a reserved header, I don't believe we should be passing it to the application. Why not use a custom trailer key instead? |
Doug, thanks a lot for your quick response.
It's an existing ecosystem of thousands of apps developed in other languages which already use Effectively we can't use Go in this ecosystem due to how grpc-go handles
Can you suggest any workarounds for this? It would be very helpful to get access to reserved metadata on some level. Another issue I'd like to hightlight about the current implementation, is that it can not identify unmarshalling issues. It unmarshalls our proprietary instance into |
I brought this issue up with the other language leads. We didn't decide on anything concrete yet, but we will discuss it further later this week and come up with a plan that can work for all the languages. I'm hopeful we'll be able to make things work more gracefully with the implementations that allowed arbitrary binary data without breaking existing users.
I'm definitely curious about this, as it's surprising to me that it would get past the unmarshalling step but eventually fail the RPC due to the status. |
Sorry for the late response here. We would like to provide a way for the user to access the raw |
So sorry I missed your message @CemGurhan .. I'm going to try to take this on this week to clean up some other discrepancies I found between languages in the general handling of statuses. |
No problem at all. If you need any help, feel free to let me know! |
Please see the FAQ in our main README.md before submitting your issue.
Use case(s) - what problem will this feature solve?
Integrating go service into an existing infrastructure with proto services written in C++, Java, Python, where the format of the grpc-status-details-bin is not enforced.
This would be consistent with other clients, that only suggest the expected format, but do not enforce it.
Proposed Solution
Right now we can't even detect, whether
grpc-status-details-bin
can be parsed correctly.The simplest solution would be a flag to disable the extended errors support entirely
The text was updated successfully, but these errors were encountered: