From 222918f4a9b9c76f55de65838ca611782c5cfdc2 Mon Sep 17 00:00:00 2001 From: Dmitrii Tunikov Date: Fri, 12 Jun 2026 16:51:08 +0200 Subject: [PATCH 1/4] docs(clickpipes/mysql): add FAQ for binlog event exceeding max_allowed_packet Document the MySQL error 1236 "log event entry exceeded max_allowed_packet" failure mode and its mitigations: increase max_allowed_packet on the source, resync the affected table, or exclude large columns from replication. The #binlog-event-exceeded-max-allowed-packet anchor is referenced by the ClickPipes notification for the NOTIFY_BINLOG_EVENT_EXCEEDED_MAX_ALLOWED_PACKET error class. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../data-ingestion/clickpipes/mysql/faq.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md index 38ff683a620..9cb10159642 100644 --- a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md +++ b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md @@ -25,6 +25,27 @@ It's also possible for an inactive database to rotate the log file without allow At the start of an initial load we record the binlog offset to start at. This offset must still be valid when the initial load finishes in order for CDC to progress. If you're ingesting a large amount of data be sure to configure an appropriate binlog retention period. While setting up tables you can speed up initial load by configuring *Use a custom partitioning key for initial load* for large tables under advanced settings so that we can load a single table in parallel. +### Why is my pipe failing with "log event entry exceeded max_allowed_packet"? {#binlog-event-exceeded-max-allowed-packet} + +If your pipe fails with an error similar to: + +``` +MySQL execute error: ERROR 1236 (HY000): log event entry exceeded max_allowed_packet; +Increase max_allowed_packet on source +``` + +it means a single binlog event (corresponding to one row change) is larger than your MySQL server's [`max_allowed_packet`](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_allowed_packet) setting. Because the server cannot send an event that exceeds this limit, the binlog stream read aborts and CDC cannot progress. + +This is most often caused by rows containing large `BLOB`, `TEXT`, or `JSON` values. To resolve it: + +- **Increase `max_allowed_packet` on the source.** Raise it above the size of your largest row change — setting it to the maximum of `1G` is usually safe: + ```sql + SET GLOBAL max_allowed_packet = 1073741824; -- 1 GiB + ``` + Set it in your server configuration (e.g. `my.cnf`) as well so it persists across restarts. Existing connections must be re-established for the new value to take effect. +- **If a single large row is the cause,** [resync the affected table](./table_resync.md) once `max_allowed_packet` has been increased so the pipe can move past it. +- **If you expect values larger than `1G`,** exclude the large column(s) from replication, as `max_allowed_packet` cannot be raised beyond `1G`. See [Can I include columns I initially excluded from replication?](#include-excluded-columns). + ### Why am I getting a TLS certificate validation error when connecting to MySQL? {#tls-certificate-validation-error} When connecting to MySQL, you may encounter certificate errors like `x509: certificate is not valid for any names` or `x509: certificate signed by unknown authority`. These occur because ClickPipes enables TLS encryption by default. From 29706556f4d32ea223869a10926a708fb3275d91 Mon Sep 17 00:00:00 2001 From: Dmitrii Tunikov Date: Fri, 12 Jun 2026 16:56:53 +0200 Subject: [PATCH 2/4] docs: specify language for error code fence (MD040) Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/integrations/data-ingestion/clickpipes/mysql/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md index 9cb10159642..66ce5015e21 100644 --- a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md +++ b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md @@ -29,7 +29,7 @@ At the start of an initial load we record the binlog offset to start at. This of If your pipe fails with an error similar to: -``` +```text MySQL execute error: ERROR 1236 (HY000): log event entry exceeded max_allowed_packet; Increase max_allowed_packet on source ``` From 8ecfb1baa24a8c594a9fe5d739292a113e0fb9ed Mon Sep 17 00:00:00 2001 From: Dmitrii Tunikov Date: Fri, 12 Jun 2026 17:08:46 +0200 Subject: [PATCH 3/4] docs: reword max_allowed_packet FAQ heading to drop quoted phrase Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/integrations/data-ingestion/clickpipes/mysql/faq.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md index 66ce5015e21..5cd3abcbd0a 100644 --- a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md +++ b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md @@ -25,7 +25,7 @@ It's also possible for an inactive database to rotate the log file without allow At the start of an initial load we record the binlog offset to start at. This offset must still be valid when the initial load finishes in order for CDC to progress. If you're ingesting a large amount of data be sure to configure an appropriate binlog retention period. While setting up tables you can speed up initial load by configuring *Use a custom partitioning key for initial load* for large tables under advanced settings so that we can load a single table in parallel. -### Why is my pipe failing with "log event entry exceeded max_allowed_packet"? {#binlog-event-exceeded-max-allowed-packet} +### Why is my pipe failing with a max_allowed_packet binlog error? {#binlog-event-exceeded-max-allowed-packet} If your pipe fails with an error similar to: @@ -34,7 +34,7 @@ MySQL execute error: ERROR 1236 (HY000): log event entry exceeded max_allowed_pa Increase max_allowed_packet on source ``` -it means a single binlog event (corresponding to one row change) is larger than your MySQL server's [`max_allowed_packet`](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_allowed_packet) setting. Because the server cannot send an event that exceeds this limit, the binlog stream read aborts and CDC cannot progress. +it means a single binlog event (corresponding to one row change) is larger than your MySQL server's [`max_allowed_packet`](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_max_allowed_packet) setting. Because the server can't send an event that exceeds this limit, the binlog stream read aborts and CDC can't progress. This is most often caused by rows containing large `BLOB`, `TEXT`, or `JSON` values. To resolve it: @@ -44,7 +44,7 @@ This is most often caused by rows containing large `BLOB`, `TEXT`, or `JSON` val ``` Set it in your server configuration (e.g. `my.cnf`) as well so it persists across restarts. Existing connections must be re-established for the new value to take effect. - **If a single large row is the cause,** [resync the affected table](./table_resync.md) once `max_allowed_packet` has been increased so the pipe can move past it. -- **If you expect values larger than `1G`,** exclude the large column(s) from replication, as `max_allowed_packet` cannot be raised beyond `1G`. See [Can I include columns I initially excluded from replication?](#include-excluded-columns). +- **If you expect values larger than `1G`,** exclude the large columns from replication, as `max_allowed_packet` can't be raised beyond `1G`. See [Can I include columns I initially excluded from replication?](#include-excluded-columns). ### Why am I getting a TLS certificate validation error when connecting to MySQL? {#tls-certificate-validation-error} From 5880ab7faab6be208334980b3bc8d04e376d9615 Mon Sep 17 00:00:00 2001 From: Dmitrii Tunikov Date: Mon, 15 Jun 2026 10:06:31 +0200 Subject: [PATCH 4/4] suggest to resync if a single row is larger than 1G --- docs/integrations/data-ingestion/clickpipes/mysql/faq.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md index 5cd3abcbd0a..eee0f05b9b3 100644 --- a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md +++ b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md @@ -42,9 +42,8 @@ This is most often caused by rows containing large `BLOB`, `TEXT`, or `JSON` val ```sql SET GLOBAL max_allowed_packet = 1073741824; -- 1 GiB ``` - Set it in your server configuration (e.g. `my.cnf`) as well so it persists across restarts. Existing connections must be re-established for the new value to take effect. -- **If a single large row is the cause,** [resync the affected table](./table_resync.md) once `max_allowed_packet` has been increased so the pipe can move past it. -- **If you expect values larger than `1G`,** exclude the large columns from replication, as `max_allowed_packet` can't be raised beyond `1G`. See [Can I include columns I initially excluded from replication?](#include-excluded-columns). + Set it in your server configuration (e.g. `my.cnf` or the DB Parameter Group) as well so it persists across restarts. +- **If a single row is larger than 1G:** resync the pipe. ### Why am I getting a TLS certificate validation error when connecting to MySQL? {#tls-certificate-validation-error}