Hi, Sorry for the late comment but isn't the pushed logic now different to what it was there before?
IIUC previously (in a non-debug build) if the specified conflict_reason was not found, it returned RS_INVAL_NONE -- now it seems to return whatever enum happens to be last. How about something more like below: ---------- ReplicationSlotInvalidationCause GetSlotInvalidationCause(const char *conflict_reason) { ReplicationSlotInvalidationCause cause; bool found = false; for (cause = 0; !found && cause <= RS_INVAL_MAX_CAUSES; cause++) found = strcmp(SlotInvalidationCauses[cause], conflict_reason) == 0; Assert(found); return found ? cause : RS_INVAL_NONE; } ---------- Kind Regards, Peter Smith. Fujitsu Australia