Development issueshttps://lab.civicrm.org/groups/dev/-/issues2020-01-06T15:23:00Zhttps://lab.civicrm.org/dev/core/-/issues/1126Unable to edit the membership end date for members that have a recurring payment2020-01-06T15:23:00ZwmortadaUnable to edit the membership end date for members that have a recurring paymentI am working on a website that has the option for members to pay for membership by direct debit (via GoCardless). This is working fine but occasionally we have an issue where a member pays by direct debit and also by card (via SagePay). ...I am working on a website that has the option for members to pay for membership by direct debit (via GoCardless). This is working fine but occasionally we have an issue where a member pays by direct debit and also by card (via SagePay). We refund the card payment to the member and update the related contribution in CiviCRM. This part is fine but the membership end date is incorrect and we are unable to edit it.
The membership is annual so if a member signs up by both direct debit and card the two payments will add two years to the end date (e.g. it will end in 2021 rather than 2020). So, after we refund the card payment we want to also edit the end date to change it to 2020. Unfortunately, we are unable to do this.
Normally, you can edit the end date, as shown below:
![membership](/uploads/902dfb876973356d59a4e1c0bb60c05a/membership.png)
It appears that if the membership is set as auto-renew and linked to a recurring payment then CiviCRM doesn't allow users to edit the end date. I presume this is a deliberate 'feature' but in our case it is preventing us from correcting the end date.
![memerbship-auto-renew](/uploads/69b89fd0aeeb5c65474241df97772a9d/memerbship-auto-renew.png)
The site is running CiviCRM 5.7.6 on WordPress.
I have posted a [question ](https://civicrm.stackexchange.com/questions/31215/how-can-you-edit-the-end-date-for-an-auto-renew-membership)on StackExchange about this issue to see if there was a workaround but I think it is a bug.https://lab.civicrm.org/dev/core/-/issues/1125Custom fieldsets participants added twice2023-02-15T15:13:29ZwdecraeneCustom fieldsets participants added twiceWhen editing a participant, some custom fieldsets are added twice to the participant edit form. When saving, only the data in the second fieldset is saved (so users think nothing happened when they added the data in the first instance of...When editing a participant, some custom fieldsets are added twice to the participant edit form. When saving, only the data in the second fieldset is saved (so users think nothing happened when they added the data in the first instance of the fieldset).
This only happens with fieldsets linked to a specific event type.
In templates/CRM/Event/Form/Participant.tpl:
```smarty
CRM.buildCustomData( '{$customDataType}', null, null );
{if $eventID}
CRM.buildCustomData( '{$customDataType}', {$eventID}, {$eventNameCustomDataTypeID} );
{/if}
{if $eventTypeID}
CRM.buildCustomData( '{$customDataType}', {$eventTypeID}, {$eventTypeCustomDataTypeID} );
{/if}
```
* First buildCustomData : adds all custom field sets, except those linked to a specific event id
* Second buildCustomData : adds all custom field sets linked to a event id
* Third buildCustomData : adds all custom field sets linked to a specific event type id
So the combination of the first and third one is the cause of fieldsets added twice.
Solution? Altering template, changing arguments, fixing getTree() in CRM/Core/BAO/CustomGroup.php, ... ?
See also
* https://issues.civicrm.org/jira/browse/CRM-10983
* https://issues.civicrm.org/jira/browse/CRM-20633https://lab.civicrm.org/dev/core/-/issues/1124Activity export Source Contact fields and Contact ID return same ID for Indiv...2022-11-24T05:03:32ZStoobActivity export Source Contact fields and Contact ID return same ID for IndividualsHow to replicate in 5.15:
1. Create two activities with yourself as Source
* one with another individual contact as Target
* one with another organization contact as Target
2. Find Activities and Export these two activities
3. Choose...How to replicate in 5.15:
1. Create two activities with yourself as Source
* one with another individual contact as Target
* one with another organization contact as Target
2. Find Activities and Export these two activities
3. Choose the following field mapping
![exp](/uploads/8c99dcd5c25fa40bc8f709cac832b247/exp.png)
4. Notice how the Sort Name field and Internal Contact ID field return same ID for Individual but different ID for Organization
Expected behavior: Sort Name and Internal Contact ID should return the Target Contact (not the Source) for all contact types. Cannot think of a reason to do otherwise.
@eileen FYI pursuant to our convo on Mattermosthttps://lab.civicrm.org/dev/core/-/issues/1123Changing the label for the Inbound Email activity type lets you edit/delete t...2019-09-07T21:07:07ZDaveDChanging the label for the Inbound Email activity type lets you edit/delete them even if the permission disallowsThis is related to dev/core#1116 but I'd like to start with this one first since it's more contained and allows removing a confusing variable that is only ever used once and used incorrectly.
1. To reproduce, set the permission so that ...This is related to dev/core#1116 but I'd like to start with this one first since it's more contained and allows removing a confusing variable that is only ever used once and used incorrectly.
1. To reproduce, set the permission so that editing inbound emails is disallowed. Will probably already be like this by default.
2. Change the activity type label for Inbound Email.
3. Go to a contact's activities tab and click the view link for an inbound email. On the popup there's now edit and delete buttons whereas before there weren't.
4. Click the edit button, make your edit, and save.
The problem is this line in https://github.com/civicrm/civicrm-core/blob/5.15.1/templates/CRM/Activity/Form/Activity.tpl#L252
`{if $action eq 4 && ($activityTName neq 'Inbound Email' || $allow_edit_inbound_emails == 1)}`
$activityTName (which is different than $activityTypeName, although it has the same value) is actually the label, and so if you've changed the label the comparison doesn't work.
This is the only place this variable is used.5.18.0https://lab.civicrm.org/dev/drupal/-/issues/78Drupal8: cv --user=2019-07-16T16:30:48ZAlanDixonDrupal8: cv --user=Drupal 8.7.4, CiviCRM 5.15.1, php 7.3
When trying to run this command (cli)
cv --user=blackfly --cwd=/var/www/drupal/web api job.process_mailing
I get this:
<code><pre>[Symfony\Component\Debug\Exception\FatalThrowableError] ...Drupal 8.7.4, CiviCRM 5.15.1, php 7.3
When trying to run this command (cli)
cv --user=blackfly --cwd=/var/www/drupal/web api job.process_mailing
I get this:
<code><pre>[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to undefined method Drupal\Core\Session\AccountProxy::get()
</pre></code>
I'm guessing it's cv that is insufficiently booting Drupal.https://lab.civicrm.org/dev/core/-/issues/1122Performance issue when loading GroupContactCache in larger databases2022-11-22T05:03:55ZlolcodePerformance issue when loading GroupContactCache in larger databasesI am attaching a sample from our slow query logs that shows that group loading is a problem for some of our Smart groups. In particular the code that checks for removed contacts looks like it could benefit from performance improvement.
...I am attaching a sample from our slow query logs that shows that group loading is a problem for some of our Smart groups. In particular the code that checks for removed contacts looks like it could benefit from performance improvement.
The potential solution is similar to the other ticket on group performance that I have opened: https://lab.civicrm.org/dev/core/issues/930
I have a patch for a partial solution so far and it doesn't break any of the existing tests. However I could use some guidance on making sure the tests cover enough cases of saved searches.
[performance-problem-samples.txt](/uploads/346b3cc009f6371ea13cf49dd9d94c6a/performance-problem-samples.txt)https://lab.civicrm.org/dev/core/-/issues/1121Activity Export: Fields with the value of 0 are exported as empty2022-12-01T05:03:38ZReece Activity Export: Fields with the value of 0 are exported as emptyHi all,
When following the below steps, any fields that have the value of zero are exported into the CSV as empty cells.
Steps to reproduce (must have an Activity that has a field with the value of zero in it):
1. Perform an Activity ...Hi all,
When following the below steps, any fields that have the value of zero are exported into the CSV as empty cells.
Steps to reproduce (must have an Activity that has a field with the value of zero in it):
1. Perform an Activity Search
2. Select Activities (that contain either the value being zero or not)
3. Actions -> Export Activities
4. Select fields for Export
5. Fields:
* The field that has the value of zero (or other)
* Can also add the contact name to lookup in the UI easily..
6. Export
[Line 346 of Export.php on Master](https://github.com/civicrm/civicrm-core/blob/master/CRM/Export/BAO/Export.php#L346) is only checking against `empty($value)` whereas it should either check if the value `is_numeric($value)` aswell, or swap the empty function to `CRM_Utils_System::isNull($value)` which I believe would resolve this too.
Cheers,
Reecehttps://lab.civicrm.org/dev/core/-/issues/1120Export help info does not match code2019-07-16T20:03:55ZeileenExport help info does not match codeIn the export screen we see that the postal greeting or addressee greeting can change if more than 2 contacts are merged
![Screen_Shot_2019-07-16_at_9.32.04_AM](/uploads/871c946c283258e8e4c6e68bae72e1d7/Screen_Shot_2019-07-16_at_9.32.04...In the export screen we see that the postal greeting or addressee greeting can change if more than 2 contacts are merged
![Screen_Shot_2019-07-16_at_9.32.04_AM](/uploads/871c946c283258e8e4c6e68bae72e1d7/Screen_Shot_2019-07-16_at_9.32.04_AM.png)
In the code the rules are that 2 or more contacts being merged use the rules (ie if contacts are merged then use the rules). (There is some mickey mouse separate handling where it seems the code attempts to only use the 'other' logic for 2 or more
I can't see why you wouldn't use the merge string for any merges - which would simplify the code a lot too
@lcdweb @colemanw thoughts - can we tweak the above to '(when merging contacts to one row)' & clean up the code to just do that (without extra code that with more or less success attempts to do ? something ? when there are only 2 & use the merge string where there is more than 2
I *think* the intent might have been that you could choose different behaviour for many vs just 2 but in practice you can't actually select that in the UI5.17.0https://lab.civicrm.org/dev/core/-/issues/1119Repeating events do not propagate custom data when user chooses apply "to eve...2022-11-22T05:03:56ZRichRepeating events do not propagate custom data when user chooses apply "to every event in the series"## What happens now
If you create a custom dataset on Events, then create an event and populate that dataset, then create some repeating events from it:
1. <del>custom data from the original event is not present in the repeats.</del> (...## What happens now
If you create a custom dataset on Events, then create an event and populate that dataset, then create some repeating events from it:
1. <del>custom data from the original event is not present in the repeats.</del> (this seems to have been fixed recently?)
2. editing the custom data on the original, then choosing "change applies to every event in the series" from the pop-up that appears after clicking Save, gives a success message but the custom data is only saved for the current event.
## What I think should happen
1. ✔ Custom data should be copied to repeat events on creation.
2. Custom data should be copied to repeat events when the user says so.
## Other observations
Changing the number of events does seem to trigger the data to propagate again.https://lab.civicrm.org/dev/core/-/issues/1118Case summary report filters incorrectly for case type2019-07-21T23:07:54ZDeepak SrivastavaCase summary report filters incorrectly for case typeCase summary report uses REGEXP filtering for case type:
`WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*5[[:cntrl:]]*' `
Which results in records where case type id consists of 5 (for this example).
![image](/uploads/485a42f6d...Case summary report uses REGEXP filtering for case type:
`WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*5[[:cntrl:]]*' `
Which results in records where case type id consists of 5 (for this example).
![image](/uploads/485a42f6d595079ce990816695e1b4a6/image.png)
The clause looks old and appears to be based on assumption that case could be based on multiple case types. Case type however is an integer column and could use where() clause of CRM/Report/Form.php.
The problem also been raised on stack exchange - https://civicrm.stackexchange.com/questions/30573/case-type-filter-bug-in-case-summary-report-multiple-case-types-reported.
A PR would follow.5.17.0https://lab.civicrm.org/dev/core/-/issues/1116Changing a civicase activity's label breaks the max_instances check2023-02-23T14:16:28ZDaveDChanging a civicase activity's label breaks the max_instances check1. Configure a case type so that some activity type (other than open case) has a max_instances set.
2. Create a case.
3. Change the activity type's label.
4. On manage case, create a second activity of that type.
5. You should get the ma...1. Configure a case type so that some activity type (other than open case) has a max_instances set.
2. Create a case.
3. Change the activity type's label.
4. On manage case, create a second activity of that type.
5. You should get the max_instances warning but it doesn't.https://lab.civicrm.org/dev/core/-/issues/1115CiviCase singleton activity warning has wrong url2019-07-15T19:07:10ZDaveDCiviCase singleton activity warning has wrong urlThis came up earlier when I was first checking out the Case v5 extension, but I thought I also checked it against core and it was ok in core so I filed the bug against the extension (https://github.com/compucorp/uk.co.compucorp.civicase/...This came up earlier when I was first checking out the Case v5 extension, but I thought I also checked it against core and it was ok in core so I filed the bug against the extension (https://github.com/compucorp/uk.co.compucorp.civicase/issues/151). But maybe I didn't actually check since it also seems to be in core.
1. Configure a case type so that some activity type (other than open case) has a max_instances set.
2. On manage case, create a second activity of that type.
3. It will properly give you the warning that the singleton activity already exists, and provide a link to edit the existing one, but the link has `id=0` instead of the actual activity id.
4. If you click the link, it gives a fatal error.
It's something going on here: https://github.com/civicrm/civicrm-core/blob/5.15.1/CRM/Case/Form/Activity.php#L187-L199
Will see what I can do...https://lab.civicrm.org/dev/core/-/issues/1114Smart group created from mailing Successful Deliveries shows entire database2022-11-26T05:03:22ZjohnsSmart group created from mailing Successful Deliveries shows entire databaseVerified in 5.13.4:
1. Click on Scheduled and Sent Mailings
2. Click on Report for a completed mailing
3. Click on Advanced Search on the Successful Deliveries line
4. Select All Records
5. Select "Group - create Smart Group" from drop-...Verified in 5.13.4:
1. Click on Scheduled and Sent Mailings
2. Click on Report for a completed mailing
3. Click on Advanced Search on the Successful Deliveries line
4. Select All Records
5. Select "Group - create Smart Group" from drop-down
6. Create group as a mailing list
7. Go to Manage Groups, find the new group
8. Click contacts
9. It shows the whole database instead of just contacts in that group
Info from when I first reported this:
Key: CRM-14305
URL: https://issues.civicrm.org/jira/browse/CRM-14305
Project: CiviCRM
Issue Type: Bug
Components: Core CiviCRM
Affects Versions: 4.4.4, 5.0.0
Reporter: John Sullivan
Priority: Important
Fix For: Unscheduledhttps://lab.civicrm.org/dev/core/-/issues/1113Decimal Separator - Invalid value "total_amount" (NaN,N) creating or editing ...2021-05-05T13:51:47ZCésarDecimal Separator - Invalid value "total_amount" (NaN,N) creating or editing a membershipHello,
I see a error with one field associated with "Membership Payment and Receipt" but i think error is a "Decimal Separator"
Steps to reproduce this error:
1. Change the decimal separator to "," for example (Thousands Separator nee...Hello,
I see a error with one field associated with "Membership Payment and Receipt" but i think error is a "Decimal Separator"
Steps to reproduce this error:
1. Change the decimal separator to "," for example (Thousands Separator needs diferent format):
* ![image](/uploads/20f9093fbb84d217900f1a553f5bca0c/image.png)
2. Create a new membership or edit, but dont complete all fields required:
* ![image](/uploads/5f4c966831a5846c67dd952c161948c9/image.png)
3. Click submit button and show correct validation:
* ![image](/uploads/54f806bce74a26f8995fe59882ef825c/image.png)
4. Next complete the field required and click submit:
* ![image](/uploads/689e7656c42da0cda0d0162d93bba5f1/image.png)
5. In this point appears the validation of "total_amount"
* ![image](/uploads/23d1501cc3dc0d8e16c5ba04fb600674/image.png)
6. If click in "Record Membership Payment?" checkbox you see the incorrect value.
* ![image](/uploads/3596b91ddf641a4fc00501e1f710d4ce/image.png)
7. In this point, you need clear the value and uncheck checkbox for save the membership.
Its observed in CiviCRM 5.15.15.29.0https://lab.civicrm.org/dev/drupal/-/issues/77Drupal8: scripts in /libraries/civicrm/extern/ denied2024-01-29T09:55:42ZAlanDixonDrupal8: scripts in /libraries/civicrm/extern/ deniedTesting with CiviCRM 5.15.0, Drupal 8.7.4
Drupal's .htaccess file prevents apache from directly calling scripts except in specific directories.
So, for example, CiviMail links that go to https://domain.org/libraries/civicrm/extern/url....Testing with CiviCRM 5.15.0, Drupal 8.7.4
Drupal's .htaccess file prevents apache from directly calling scripts except in specific directories.
So, for example, CiviMail links that go to https://domain.org/libraries/civicrm/extern/url.php?u=14&qid=11 gets
Forbidden
You don't have permission to access /libraries/civicrm/extern/url.php on this server.
The best solution I've seen so far is to include
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
in the extern directory.
I suspect this is a new issue due to changes in the .htaccess file in Drupal, but I'm not sure.https://lab.civicrm.org/dev/core/-/issues/1110Contribution Summary Report does not update the Total Amount and Total Contri...2023-02-08T05:03:14ZCésarContribution Summary Report does not update the Total Amount and Total Contributions with some filtersHello,
In contribution summary report doesn't update the total amount and total contributions in statistics with this filters:
- total_amount_value
- non_deductible_amount_value
- total_sum_value
- total_avg_value
- total_count_value
...Hello,
In contribution summary report doesn't update the total amount and total contributions in statistics with this filters:
- total_amount_value
- non_deductible_amount_value
- total_sum_value
- total_avg_value
- total_count_value
Other filters are working good and show correct statistics based in final expected result.
Im testing this report on 5.15.1https://lab.civicrm.org/dev/core/-/issues/1109Contact Reference fields are not updated when merging contacts2019-08-08T03:27:12ZPatrick Figelpfigel@greenpeace.orgContact Reference fields are not updated when merging contactsWhen contacts are merged, any Contact Reference custom fields pointing to the contact that was deleted will not be updated to point to the remaining contact.
This is not a recent regression. It used to work in 4.6, but was broken at som...When contacts are merged, any Contact Reference custom fields pointing to the contact that was deleted will not be updated to point to the remaining contact.
This is not a recent regression. It used to work in 4.6, but was broken at some point after that. (Confirmed as broken in 5.7, 5.13 and master.)5.17.0https://lab.civicrm.org/dev/drupal/-/issues/75[regression] `cv` fails on CiviCRM 5.15.02022-04-06T22:13:17ZJonGold[regression] `cv` fails on CiviCRM 5.15.0Any command that attempts to access Civi fails with:
```
[RuntimeException]
Cannot resolve path using "cms.root.url"
```
Civi 5.14.2 works fine.
The issue is `CRM...Any command that attempts to access Civi fails with:
```
[RuntimeException]
Cannot resolve path using "cms.root.url"
```
Civi 5.14.2 works fine.
The issue is `CRM_Utils_System_Drupal8::languageNegotiationURL()`, which was added in 5.15.0. Removing this function restores the correct behavior, but I assume has a detrimental effect on multilingual.
The underlying cause of the error is hidden because of a later PR by @bgm that accounts for the REST API. If you roll back his change, the error becomes:
```
[Drupal\Core\DependencyInjection\ContainerNotInitializedException]
\Drupal::$container is not initialized yet. \Drupal::setContainer() must be called with a real container.
```5.16.0https://lab.civicrm.org/dev/wordpress/-/issues/33One of parameters (value: ) is not of the type Integer2019-07-09T23:30:15ZlandbryoOne of parameters (value: ) is not of the type IntegerHi All,
we're running into an issue when a contribution is attributed to the Financial Type of "Other".
Here's how we reproduce the issue:
1. In CiviCRM we "View Contact"
2. Select "Contributions" tab
3. Clicking "Edit" for a contrib...Hi All,
we're running into an issue when a contribution is attributed to the Financial Type of "Other".
Here's how we reproduce the issue:
1. In CiviCRM we "View Contact"
2. Select "Contributions" tab
3. Clicking "Edit" for a contribution assigned the financial type of "Other" produces the "Network Error
Unable to reach the server. Please refresh this page in your browser and try again." error.
4. Right clicking the "Edit" and selecting "Open link in new tab" produces the error "One of parameters (value: ) is not of the type Integer" with the following backtrace:
```
#0 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(381): CRM_Core_Error::backtrace()
#1 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Type.php(571): CRM_Core_Error::fatal("One of parameters (value: ) is not of the type Integer")
#2 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(1519): CRM_Utils_Type::validate("", "Integer")
#3 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(1397): CRM_Core_DAO::composeQuery("SELECT ft.id, ft.total_amount FROM civicrm_financial_trxn ft INNER JOIN civic...", (Array:2), TRUE)
#4 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/FinancialTrxn.php(99): CRM_Core_DAO::executeQuery("SELECT ft.id, ft.total_amount FROM civicrm_financial_trxn ft INNER JOIN civic...", (Array:2))
#5 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/Contribution.php(3991): CRM_Core_BAO_FinancialTrxn::getBalanceTrxnAmt("44726")
#6 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/AbstractEditPayment.php(744): CRM_Contribute_BAO_Contribution::getPaymentInfo("44726", NULL, TRUE)
#7 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/Contribution.php(251): CRM_Contribute_Form_AbstractEditPayment->assignPaymentInfoBlock()
#8 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(585): CRM_Contribute_Form_Contribution->preProcess()
#9 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Display.php(92): CRM_Core_Form->buildForm()
#10 /home/example/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contribute_Form_Contribution), "display")
#11 /home/example/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contribute_Form_Contribution), "display")
#12 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(349): HTML_QuickForm_Page->handle("display")
#13 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Page/Tab.php(327): CRM_Core_Controller->run()
#14 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Page/Tab.php(378): CRM_Contribute_Page_Tab->edit()
#15 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(311): CRM_Contribute_Page_Tab->run((Array:4), NULL)
#16 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(85): CRM_Core_Invoke::runItem((Array:13))
#17 /home/example/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:4))
#18 /home/example/public_html/wp-content/plugins/civicrm/civicrm.php(1392): CRM_Core_Invoke::invoke((Array:4))
#19 /home/example/public_html/wp-includes/class-wp-hook.php(286): CiviCRM_For_WordPress->invoke("")
#20 /home/example/public_html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters("", (Array:1))
#21 /home/example/public_html/wp-includes/plugin.php(465): WP_Hook->do_action((Array:1))
#22 /home/example/public_html/wp-admin/admin.php(253): do_action("toplevel_page_CiviCRM")
```
This is the URL structure of the new tab:
https://example.org/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fcontact%2Fview%2Fcontribution&reset=1&action=update&id=44726&cid=532&context=contribution
Thank you for any help you can provide.https://lab.civicrm.org/dev/core/-/issues/1108Unsubscribe broken if mailing sent to previous mailing recipients with an exc...2019-11-17T19:42:12ZRichUnsubscribe broken if mailing sent to previous mailing recipients with an excluded groupI think <https://lab.civicrm.org/dev/core/commit/96fce13bb554201fa9eae10b02160ed7b5644806> broke the unsubscribe in various situations.
The logic is pretty hard to follow because the options create zillions of use cases, however, having...I think <https://lab.civicrm.org/dev/core/commit/96fce13bb554201fa9eae10b02160ed7b5644806> broke the unsubscribe in various situations.
The logic is pretty hard to follow because the options create zillions of use cases, however, having been hit by this I can report that the following situation created it:
1. send a mailing (A) to a mailing group
2. send a second mailing (B) to the recipients of mailing (A), excluding those in a group (C).
Recipients of (B) will not be able to unsubscribe.
This is because (as I have understood so far):
1. The unsubscribe code is supposed to find all the lists of contacts (I'm deliberately using _lists_ to avoid ambiuities with _groups_ -if I say _group_ it means a CiviCRM group as you would see on a contact's record.) that were used to select recipients of the mailing. These "lists" might be groups or previous mailings.
2. After the initial fetch - for the mailing that triggered the unsubscribe - there is a recursive fetch loop that goes back up the tree of mailings that were used to include contacts in the lists, finding all their included groups.
The code introduced by the commit above makes (1) return no records, and therefore the second step is never triggered, resulting in no groups whatsoever being identified as the ones to unsubscribe (remove) contacts from.
This is getting orgs using CiviMail in this way in hot water as you can imagine.5.21.0RichRich