# 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

[Realtime](/error-codes#realtime)
