X_REALTIME_PRODUCER_CONFLICT
Means
two kinds of producer carry one table on the change bus
Typical cause
a table the WAL replicator already carries is also published by a recordPublisher (or the reverse), so every committed row would reach its channels twice; the sync node keeps the producer kind it saw first and drops the other
Fix
recordPublisher({ entities: [/* every entity but this table's */] }) where the replicator runs — it already carries every committed row — then restart the sync node