go-ethereum/rpc
TanayK07 27f94313b6 rpc: account for error payload size in batch response limit
The batch response size limit (BatchResponseMaxSize) only accounted
for successful response payloads (resp.Result), ignoring error
responses entirely. Since resp.Result is nil for error responses,
large error payloads (especially those with error data) were not
counted toward the limit, allowing batch responses to significantly
exceed the configured maximum size.

Fix this by marshaling and counting the error payload size when
resp.Error is non-nil.

Fixes #33814
2026-03-02 21:08:42 +05:30
..
testdata rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
client.go rpc, internal/telemetry: add OpenTelemetry tracing for JSON-RPC calls (#33452) 2026-01-14 10:58:30 -07:00
client_example_test.go rpc: make ExampleClientSubscription work with the geth API (#19483) 2020-04-27 17:25:24 +02:00
client_opt.go eth, rpc: add configurable option for wsMessageSizeLimit (#27801) 2023-10-03 03:23:19 -04:00
client_opt_test.go all: update license comments and AUTHORS (#31133) 2025-02-05 23:01:17 +01:00
client_test.go rpc: fix a flaky test of the websocket (#33002) 2025-10-23 20:58:33 +08:00
context_headers.go rpc: support injecting HTTP headers through context (#26023) 2022-11-16 15:22:12 +01:00
doc.go all: update dead wiki links (#32215) 2025-07-15 06:24:17 -06:00
endpoints.go trie, rpc, cmd/geth: fix tests on 32-bit and windows + minor rpc fixes (#21871) 2020-11-19 22:50:47 +01:00
errors.go rpc: add method to test for subscription support (#25942) 2023-06-14 14:04:41 +02:00
handler.go rpc: account for error payload size in batch response limit 2026-03-02 21:08:42 +05:30
http.go rpc: extract OpenTelemetry trace context from request headers (#33599) 2026-01-14 14:03:48 -07:00
http_test.go rpc: avoid unnecessary RST_STREAM, PING frames sent by client (#33122) 2025-11-11 15:54:36 +01:00
inproc.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
ipc.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
ipc_js.go all: add go:build lines (#23468) 2021-08-25 18:46:29 +02:00
ipc_unix.go rpc: fix ipc max path size (#29385) 2024-04-02 11:25:19 +02:00
ipc_wasip1.go all: add build tags for wasip1 (#31090) 2025-01-30 16:58:53 +01:00
ipc_windows.go rpc: use go-winio for named pipes (#27972) 2023-08-23 04:39:01 +02:00
json.go rpc: add method name length limit (#31711) 2025-05-05 14:43:47 +02:00
metrics.go rpc: fix ns/µs mismatch in metrics (#28649) 2023-12-08 09:40:50 +01:00
server.go rpc, internal/telemetry: add OpenTelemetry tracing for JSON-RPC calls (#33452) 2026-01-14 10:58:30 -07:00
server_test.go rpc: account for error payload size in batch response limit 2026-03-02 21:08:42 +05:30
service.go rpc, internal/telemetry: add OpenTelemetry tracing for JSON-RPC calls (#33452) 2026-01-14 10:58:30 -07:00
stdio.go rpc: add limit for batch request items and response size (#26681) 2023-06-13 13:38:58 +02:00
subscription.go rpc: add timeout to rpc client Unsubscribe (#30318) 2024-08-20 15:54:28 +02:00
subscription_test.go internal: remove unused shh and swarm modules from console (#32073) 2025-07-01 19:51:16 +08:00
testservice_test.go rpc: remove deprecated method "Notifier.Closed" (#29162) 2024-03-05 14:44:23 +01:00
tracing_test.go rpc,internal/telemetry: fix deferred spanEnd to capture errors via pointer (#33772) 2026-02-14 01:00:14 +01:00
types.go eth, eth/filters: implement API error code for pruned blocks (#31361) 2025-04-01 13:42:01 +02:00
types_test.go rpc: run tests in parallel (#30384) 2024-11-19 13:43:33 +01:00
websocket.go rpc: add SetWebsocketReadLimit in Server (#32279) 2025-08-19 14:32:59 +08:00
websocket_test.go rpc: refactor read limit test (#32494) 2025-08-26 23:43:51 +02:00