fixes core#2881 - APIv3 replace only replaces the first 25 records #21681
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
APIv3
replace
only replaces the first 25 records it's intended to replace. This quickly spirals out of control if you send a mailing to > 25 groups.Before
Mailings with > 25 groups cause
civicrm_mailing_group
to grow exponentially until recipients can no longer be calculated.After
Works as expected.
Technical Details
It's a classic "forgot to set limit of 0 so it's 25" error.
Comments
This bug has been around for a very long time, it's my luck I've had two clients encounter it recently.