I think the general idea was that since the MCP was processed and committed to the primary datastore (SQL), that the MCL message cannot be skipped (or shouldn't rather) because at that point there would be an inconsistent state between SQL and Elasticsearch. Reprocessing of failed MCLs would lead to consistency issues with out of order messages.