From 00846e084a946e9c07fea90d4a8343ec6234fee4 Mon Sep 17 00:00:00 2001 From: Dmitrii Tunikov Date: Mon, 6 Jul 2026 15:18:44 +0200 Subject: [PATCH 1/2] Add MySQL ClickPipes FAQ entry for partial JSON binlog failures Documents the NOTIFY_BINLOG_PARTIAL_JSON_UNSUPPORTED failure that occurs when the source MySQL has binlog_row_value_options=PARTIAL_JSON enabled. Advises keeping the option disabled and gives the mitigation: turn off PARTIAL_JSON and resync the pipe. --- .../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 1bd2b41a25d..cd396eafae7 100644 --- a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md +++ b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md @@ -50,6 +50,27 @@ This is most often caused by rows containing large `BLOB`, `TEXT`, or `JSON` val 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 is my pipe failing with a partial JSON binlog error? {#binlog-partial-json-unsupported} + +If your pipe fails with an error similar to: + +```text +Received a partial JSON update event while processing .; binlog_row_value_options must be disabled (set to '') +``` + +it means the source MySQL server has [`binlog_row_value_options`](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_row_value_options) set to `PARTIAL_JSON`. With this option enabled, MySQL logs updates to `JSON` columns as partial diffs (only the changed paths) rather than the full document. ClickPipes cannot apply these partial diffs, so CDC can't progress. + +`binlog_row_value_options` is a dynamic variable, so it can be enabled after your pipe was created — for example by a DBA or an application session — even if it was empty when the pipe was set up. **We recommend keeping `binlog_row_value_options` disabled (empty) for any database replicated by ClickPipes.** + +To resolve it: + +- **Disable `PARTIAL_JSON` on the source.** Set the value back to empty: + ```sql + SET GLOBAL binlog_row_value_options = ''; + ``` + Clear it in your server configuration (e.g. `my.cnf` or the DB Parameter Group) as well so it persists across restarts. +- **Resync the pipe** so replication resumes from a clean offset. + ### 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 bb9b8fbe5210f856515efe15fe2132d0ebec076f Mon Sep 17 00:00:00 2001 From: Dmitrii Tunikov Date: Mon, 6 Jul 2026 15:30:19 +0200 Subject: [PATCH 2/2] cleanup --- docs/integrations/data-ingestion/clickpipes/mysql/faq.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md index cd396eafae7..a9ae92ac2cd 100644 --- a/docs/integrations/data-ingestion/clickpipes/mysql/faq.md +++ b/docs/integrations/data-ingestion/clickpipes/mysql/faq.md @@ -60,8 +60,6 @@ Received a partial JSON update event while processing .
; binlog it means the source MySQL server has [`binlog_row_value_options`](https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_row_value_options) set to `PARTIAL_JSON`. With this option enabled, MySQL logs updates to `JSON` columns as partial diffs (only the changed paths) rather than the full document. ClickPipes cannot apply these partial diffs, so CDC can't progress. -`binlog_row_value_options` is a dynamic variable, so it can be enabled after your pipe was created — for example by a DBA or an application session — even if it was empty when the pipe was set up. **We recommend keeping `binlog_row_value_options` disabled (empty) for any database replicated by ClickPipes.** - To resolve it: - **Disable `PARTIAL_JSON` on the source.** Set the value back to empty: