Zachary Haupin
03/06/2026, 3:57 PMkapa.ai
03/06/2026, 3:58 PMNULL are excluded from incremental sync. It is recommended to ensure your cursor field has a NOT NULL constraint or a default value. [BigQuery source; Snowflake source]
⢠Null cursor values can cause sync failures at the destination: When using CDC (e.g., MySQL ā ClickHouse), a null value in the _ab_cdc_cursor column can cause a hard error if the destination column is defined as non-nullable. For example, the ClickHouse destination connector raises: An attempt to write null into not nullable column '_ab_cdc_cursor'. [ClickHouse issue]
⢠Cursor field must be properly set: According to the Airbyte protocol, if source_defined_cursor, cursor_field, and default_cursor_field are all unset, the configuration is considered invalid. [Airbyte Protocol]
Best practice: Always choose a cursor field that is monotonically increasing and never null. If null cursor values are possible in your data, consider adding a NOT NULL constraint or a default value at the source, or switching to a CDC-based approach where appropriate. [Snowflake source] š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.Zachary Haupin
03/06/2026, 3:59 PMkapa.ai
03/06/2026, 3:59 PMscan_changes_with_user_defined_cursor replication method, which has an exclude_todays_data option for temporal cursor fields [MSSQL Terraform resource], but there is no mention of null cursor value handling specifically.
For a definitive answer on MSSQL null cursor behavior, I'd recommend:
1. Checking the Airbyte MSSQL source connector documentation directly.
2. Considering a CDC (Change Data Capture) approach for the MSSQL source, which uses Write-Ahead Logs rather than a cursor field and may handle edge cases like null values differently. [Incremental Append - Known Limitations] š 0 button š 0 button ā¹ļø Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.