diff --git a/content/api-reference/data/webhooks/custom-webhooks-quickstart/custom-webhooks-faq.mdx b/content/api-reference/data/webhooks/custom-webhooks-quickstart/custom-webhooks-faq.mdx index 977b05894..f42f1db4f 100644 --- a/content/api-reference/data/webhooks/custom-webhooks-quickstart/custom-webhooks-faq.mdx +++ b/content/api-reference/data/webhooks/custom-webhooks-quickstart/custom-webhooks-faq.mdx @@ -77,6 +77,16 @@ If you're seeing 5xx error codes when creating webhooks, please ensure that you While logs and transactions can be self-referential entities, we only allow for a single-layer nested data structure to bound GraphQL queries. This helps us to to maintain a tidy API surface area. +## Why does my webhook payload have `truncated: true`? + +Custom Webhook payloads are capped at 10 MB. If a block's query result exceeds the limit, we still deliver the webhook but truncate the result: list fields are cut to the elements that fit, and lists resolved after that come back empty. Truncated payloads include three extra fields inside `event`: + +* `truncated` — `true` when the result is incomplete +* `truncatedFields` — the query field paths whose lists lost elements, for example `["block.logs", "block.logs.transaction.logs"]` +* `truncationReason` — a message naming the size limit that was exceeded + +To stop receiving truncated payloads, narrow your query so the full result fits under the limit — `truncatedFields` shows exactly which selections to trim. The most common cause is nesting `transaction { logs }` under `block.logs`. + ## How do I use the topic filter? * Currently, our log/event filter leverages the same semantics as a traditional topic filter for an *eth\_getLogs* RPC call. If you're not familiar with how topic filters work for *eth\_getLogs*, here's [an article](/docs/deep-dive-into-eth_getlogs) to get you up to speed.