Did 'MaxReceiveMessageLength' default change?

48 views
Skip to first unread message

Howard A

unread,
Apr 10, 2025, 7:32:56 PM (12 days ago) Apr 10
to grpc.io
Hello. Seeing something a little odd, having updated a C# .NET WPF application from GRPC 2.38.1 (22/06/2021) to 2.46.6 (11/01/2023).
The service I am receiving data from, has not changed.

When using version 2.38.1, I receive the data.
When using version 2.46.6, I do not receive the data, UNLESS I increase 'ChannelOptions.MaxReceiveMessageLength'.  (Lazily, I am just setting to to Int.MaxValue for now, and it fixes the issue).
The server is running an even older version (2.27.0), but I'm not sure that is relevant.

It seems odd, given the data is the same. I can only explain it with an assumption that the default value of 'MaxReceiveMessageLength' changed between 2.38.1 and 2.46.6, and was reduced to tip us over the edge. However, this too seems unlikely, and I couldn't see anything in the code, prs, or docs on it. Apologies if I've missed it.

This is the error I see on v2.46.6 without support for larger messages:
System.AggregateException: One or more errors occurred. (Status(StatusCode="ResourceExhausted", Detail="Received message larger than max (4614213 vs. 4194304)", DebugException="Grpc.Core.Internal.CoreErrorDetailException: {"created":"@1744306302.187000000","description":"Error received from peer ipv4:11.193.198.242:31510","file":"..\..\..\src\core\lib\surface\call.cc","file_line":953,"grpc_message":"Received message larger than max (4614213 vs. 4194304)","grpc_status":8}"))

I get no error on 2.38.1.
Could it be possible that this check was not effective in earlier versions, and someone fixed it, so that later versions now apply it correctly?

Does anyone have any ideas that might explain what it is I'm seeing? Thanks.
Howard.

yas...@google.com

unread,
Apr 18, 2025, 11:40:06 PM (4 days ago) Apr 18
to grpc.io
Hi,

These are pretty old versions, but based on the error description which says "Error received from peer", it means that the peer (in this case, the server) ran into trouble with the max message lengths. Did you change MaxReceiveMessageLength on the server to INT_MAX as well?

Along with the version increase, was there another change made? A change to message size / change to how messages are serialized ?

I also checked some history and found https://github.com/grpc/grpc/pull/22575 which changed ordering around decompression and message-size checks. Are you using compression?

Reply all
Reply to author
Forward
0 new messages