The default behavior of Replicat is to apply the operations it reads from the trail as they were applied on the source system (insert, update, delete, etc.). If it encounters a not found condition on a delete or update, or a duplicate record on an insert, the default behavior is to abend. This is because these sorts of collisions indicate an out-of-sync condition between the source and target, and we operate on the assumption that a user will want to stop replication so they can correct this condition.
However, in your case, since you know and accept that there is an out-of-sync condition, and you want to continue the transaction flow in spite of it, there are a number of parameters that let you override the default behavior.
If you want to change the operation, there are a number of parameters that let you do that, for example INSERTDELETES, INSERTMISSINGUPDATES
If you want Replicat to just handle the collision and move on, you could use: HANDLECOLLISIONS or OVERRIDEDUPS
The Oracle GoldenGate Reference Manual discusses these and other parameters:
There are also several KM notes on My Oracle Support that discuss handling collisions:
What Does The HANDLECOLLISIONS Parameter Do? (Doc ID 966207.1)
Using HANDLECOLLISIONS and ignoring DML errors in Replicats (Doc ID 1572207.1)
Let me know if these resources do not answer your questions about handling these operations in your Replicat.