hi <@U04S8PLJWMT> We have a WAL stream set up in ...
# replication-ask-ai
a
hi @kapa.ai We have a WAL stream set up in Airbyte, which runs every 5 minutes. All our streams were set up successfully as incremental streams except for one which we are inly able to set up as full refreshes. This table has a primary key and has been added to the replication slot. The only difference between this and our other streams is that it has some fields with the type array. Is there a solution to this? Our set up is • Postgres source connector version = 3.6.18. we have also tried 3.8.1 • We have a heartbeat query
k
The knowledge sources don't contain a definitive explanation for why a table with array-typed fields would be restricted to Full Refresh only in CDC mode. However, I can share what the documentation and related issues do tell us: CDC Incremental Requirements According to Airbyte's CDC documentation, the main requirements for a table to support incremental CDC sync are: • The table must have a primary key ✅ (you have this) • Data must be in tables, not views ✅ • The table must be added to the replication slot/publication ✅ (you have this) [CDC Limitations] Since your table meets all these criteria, the array-typed columns may be a contributing factor. There is a known bug in the Postgres source connector where array-typed columns in CDC mode can cause a
ClassCastException
(
TextNode cannot be cast to ArrayNode
) during deserialization when Debezium emits array values as scalar text nodes instead of JSON
ArrayNode
objects. [Array CDC Fix PR] Suggestions 1. Upgrade your connector version: The fix for the array-typed column CDC deserialization issue was addressed in a patch moving from
3.8.0-rc.11
→
3.8.0-rc.12
. You mentioned trying
3.8.1
, which should include this fix — but it's worth confirming the exact release. [Array CDC Fix PR] 2. Check your connector logs for errors like
ClassCastException
or
TextNode cannot be cast to ArrayNode
during the sync attempt, which would confirm this is the root cause. 3. Verify the publication: Confirm the table is correctly listed in the Airbyte publication by running:SELECT * FROM pg_publication_tables;[Forum Post] 4. Check replica identity: Ensure the table has
REPLICA IDENTITY DEFAULT
(or
FULL
) set correctly:SELECT relreplident FROM pg_class WHERE relname = 'your_table_name'; If after upgrading to
3.8.1
the table still only shows Full Refresh, I'd recommend opening a GitHub issue with Airbyte, as the knowledge sources don't fully explain why array fields alone would prevent the incremental option from appearing in the UI — that behavior is more typically associated with missing primary keys or nullable cursor fields. 👍 0 button 👎 0 button ℹ️ Tip: Mention @kapa.ai in the thread for follow-ups or DM the app for 1-to-1 help.