Development issueshttps://lab.civicrm.org/groups/dev/-/issues2022-12-07T05:03:30Zhttps://lab.civicrm.org/dev/core/-/issues/729Error when printing name badges with sort on participant name and -spacer- in...2022-12-07T05:03:30ZjosetorresError when printing name badges with sort on participant name and -spacer- in layoutIf you have a name badge layout with a spacer field and you sort the participants by name prior to generating name badges, the following error occurs.
`Column 'sort_name' in order clause is ambiguous 1052`
Tested on
* Drupal 7, with ...If you have a name badge layout with a spacer field and you sort the participants by name prior to generating name badges, the following error occurs.
`Column 'sort_name' in order clause is ambiguous 1052`
Tested on
* Drupal 7, with civi 5.7, 5.10 (civihosting demo)
* Wordpress Newest, civi 5.3, 5.7https://lab.civicrm.org/dev/core/-/issues/730Reports does not filter counties appropriately2022-10-02T05:03:34ZandyburnsReports does not filter counties appropriatelyWithin a report, if I select a state and then want to filter down to the county, I see all the counties in the US with the same name, e.g. Adams.![all_counties_showing](/uploads/317a70eec6edd6c5ddcc90601734b520/all_counties_showing.PNG)
...Within a report, if I select a state and then want to filter down to the county, I see all the counties in the US with the same name, e.g. Adams.![all_counties_showing](/uploads/317a70eec6edd6c5ddcc90601734b520/all_counties_showing.PNG)
In this case I used the *CRM_Report_Form_Contact_Summary* report template.
It should use the same method if used in a profile where if a certain state is selected it only allows those counties tied to that state.https://lab.civicrm.org/dev/core/-/issues/731Smart Group DB Errors post-upgrade, specifically 1292 Truncated incorrect DOU...2019-03-02T07:08:54ZjoeglSmart Group DB Errors post-upgrade, specifically 1292 Truncated incorrect DOUBLE valueCiviCRM 5.9.1 and Drupal 7. Recently upgraded from 4.7.17.
Lots of smart groups are failing now with DB errors (can't use them or edit them). This is a relevant StackExchange I found: https://civicrm.stackexchange.com/questions/28268/ca...CiviCRM 5.9.1 and Drupal 7. Recently upgraded from 4.7.17.
Lots of smart groups are failing now with DB errors (can't use them or edit them). This is a relevant StackExchange I found: https://civicrm.stackexchange.com/questions/28268/cant-update-smart-group-counts
Here are two specific MySQL queries which fail:
`CREATE TEMPORARY TABLE civicrm_temp_group_contact_cache449
(SELECT 9 as group_id, contact_a.id as id
FROM civicrm_contact contact_a
LEFT JOIN civicrm_email
ON (contact_a.id = civicrm_email.contact_id AND civicrm_email.is_primary = 1)
LEFT JOIN civicrm_contribution
ON civicrm_contribution.contact_id = contact_a.id
WHERE (
civicrm_email.on_hold IN ("")
AND (civicrm_contribution.receive_date >= '20110701000000' )
AND (civicrm_contribution.receive_date <= '20120630235959' )
AND civicrm_contribution.financial_type_id IN ("5", "1", "4", "12", "11", "6", "9", "2", "8", "10")
AND civicrm_contribution.financial_type_id = 1
)
AND (contact_a.is_deleted = 0)
AND contact_a.id
NOT IN (SELECT contact_id
FROM civicrm_group_contact
WHERE civicrm_group_contact.status = 'Removed'
AND civicrm_group_contact.group_id = 9 )
); [nativecode=1292 ** Truncated incorrect DOUBLE value: '']`
AND
`CREATE TEMPORARY TABLE civicrm_temp_group_contact_cache1477
(SELECT 208 as group_id, contact_a.id as id
FROM civicrm_contact contact_a
LEFT JOIN civicrm_email
ON (contact_a.id = civicrm_email.contact_id
AND civicrm_email.is_primary = 1)
LEFT JOIN civicrm_contribution
ON civicrm_contribution.contact_id = contact_a.id
LEFT JOIN civicrm_membership
ON civicrm_membership.contact_id = contact_a.id
LEFT JOIN civicrm_contribution_recur ccr
ON ( civicrm_membership.contribution_recur_id = ccr.id )
WHERE
(civicrm_email.on_hold IN ("")
AND contact_a.contact_type IN ("Individual", "Household")
AND civicrm_contribution.is_test = 0
AND civicrm_membership.is_test = 0
AND civicrm_membership.status_id IN ("1"))
AND (contact_a.is_deleted = 0)
AND contact_a.id NOT IN (
SELECT contact_id
FROM civicrm_group_contact
WHERE civicrm_group_contact.status = 'Removed'
AND civicrm_group_contact.group_id = 208 )
); [nativecode=1292 ** Truncated incorrect DOUBLE value: '']`
I am not very familiar with working with temporary tables. However, when I run the SELECT query inside the parentheses without the "CREATE TEMPORARY TABLE" portion, it returns successfully. However, PHPMyAdmin does not like it when I add the "CREATE TEMPORARY TABLE" bit. The MySQL has user proper permissions and it's an InnoDB MySQL database.
EDIT: I've tried to post the queries with indentations and line breaks but they don't stay so I apologize for the formatting.5.11https://lab.civicrm.org/dev/drupal/-/issues/48Column next_sched_contribution should be next_sched_contribution_date for Vie...2020-04-15T06:55:32ZherbdoolColumn next_sched_contribution should be next_sched_contribution_date for Views integrationIn https://github.com/civicrm/civicrm-drupal/blob/a6a3276330d54ce88fe78cdf9f9034421d56f20c/modules/views/components/civicrm.contribute.inc#L1057 it's referencing a table column that doesn't exist (anymore?).In https://github.com/civicrm/civicrm-drupal/blob/a6a3276330d54ce88fe78cdf9f9034421d56f20c/modules/views/components/civicrm.contribute.inc#L1057 it's referencing a table column that doesn't exist (anymore?).5.14.0https://lab.civicrm.org/dev/backdrop/-/issues/38Views image handling (with Backdrop image styles)2022-10-08T12:17:10ZbgmViews image handling (with Backdrop image styles)*Created by: laryn*
The views image handling (using image styles) doesn't quite work for me out of the box. There are two issues here, I think:
1. The core contact image functionality doesn't work with image styles (as they should).
...*Created by: laryn*
The views image handling (using image styles) doesn't quite work for me out of the box. There are two issues here, I think:
1. The core contact image functionality doesn't work with image styles (as they should).
2. Contact images that were uploaded via `webform_civicrm` doubly don't work (they were probably never supported officially).
---
PR by @laryn: https://github.com/civicrm/civicrm-backdrop/pull/61
https://lab.civicrm.org/dev/core/-/issues/732Parsing of addresses in the format of different countries2023-03-05T05:03:27ZjaapjansmaParsing of addresses in the format of different countriesCiviCRM has the ability to parse addresses into a street name, house number and street unit.
This parsing is based on I assume US address formats.
E.g. an address like _799 E DRAGRAM SUITE 5A_ is parsed into house number: 799, street n...CiviCRM has the ability to parse addresses into a street name, house number and street unit.
This parsing is based on I assume US address formats.
E.g. an address like _799 E DRAGRAM SUITE 5A_ is parsed into house number: 799, street name: E Dragram, and Street unit Suite 5a.
In the Netherlands and Belgium the adresses are formatted in a different way, first it is the street name, then the house number and then the street unit.
Some examples:
* _Grote straat 1a_, which should be parsed to Street name: Grote straat, house number 1, and street unit a
* _Grote straat 2-3_, which should be parsed to Street name: Grote straat, House number 2, and street unit 3
* _Plein 40-45 60-II_, which should be parsed to Street name: Plein 40-45, house number 60 and street unit II
**What I think CiviCRM should be capable of (either with an extension or in core):**
1. Parse addresses based on the country of the address
2. Format addresses based on the country of the address, meaning glue the individual address (Street name, house number, street unit) parts into one address
**How does it work currently?**
When I enable Address Parsing I can enther a full address into CiviCRM.
If I enter _Grote straat 1a_ it gets parsed into Address name: Grote straat 1a, House number: _empty_ and street unit _empty_
If I enter _Plein 40-45 60-II_ it gets parsed into Address name: Plein 40-45 60-II, House number: _empty_ and street unit _empty_
If I enter the individual parts, street name: Grote straat, house number: 1 and street unit a, it gets formatted to 1 Grote straat a
As you can see the formatting and parsing of Dutch and Belgium addresses does not work.
**Proposed solution**
I do think it will be good when the address parsing functionality could be made in such way that extensions could hook into it.
I am thinking of a hook which provides callback functions for address parsing based on the country ID of the address.
Example code
```php
$callbacks[1020] = array('CRM_Address_BAO_Address', 'parseBelgiumAddress');
$callbacks['default'] = array('CRM_Address_BAO_Address', 'parseAddress');
/**
* Alter the callbacks for address parsing
*
* @param array $callbacks
*/
hook_civicrm_alter_address_parser_callbacks(&$callbacks) {
// Add a custom address parser
// For example the dutch one:
$callbakcs[1152] = array('CRM_MyExtension_DutchAddressParser', 'parseDutchAddress');
}
```
This way CiviCRM core could provide a default address parser, and a set of address parser for certain countries and if one is missing an extension developer could write the missing parser.
What do you think of this? If everyone is happy I am happy to implement this.jaapjansmajaapjansmahttps://lab.civicrm.org/dev/core/-/issues/733Validation radio custom fields on civicrm_validateForm hook does not work2022-10-04T05:03:30ZscardiniusValidation radio custom fields on civicrm_validateForm hook does not workI have a custom field to contact in radio type format, not required field.
I'd like to set up custom error on this empty field by using validateForm but `$fields` array doesn't contain a key for this custom field. After setting `$error...I have a custom field to contact in radio type format, not required field.
I'd like to set up custom error on this empty field by using validateForm but `$fields` array doesn't contain a key for this custom field. After setting `$error['custom_xx']` the form is reloaded without displaying the error.
The question is why for Radio type of custom field there is no a key in $fields array?
PS. Related to creating new contact and editing existing contact.https://lab.civicrm.org/dev/core/-/issues/734Contribution Detail Report Multiple Contacts combined into one link, comma-de...2022-10-03T05:03:56ZjoeglContribution Detail Report Multiple Contacts combined into one link, comma-delimited contact id'sWhen listing multiple contacts as contributions on the Contribution Detail Report, in CiviCRM 5.9.1, the contacts are listed as one link, with comma de-limited contact id's, like so:
`/civicrm/contact/view?reset=1&cid=13819,10902,10901`...When listing multiple contacts as contributions on the Contribution Detail Report, in CiviCRM 5.9.1, the contacts are listed as one link, with comma de-limited contact id's, like so:
`/civicrm/contact/view?reset=1&cid=13819,10902,10901`
When I click the link, I get a "Contact not found" error and am sent to the main dashboard.
Should these links be separate for each contact instead of comma-delimited in one link?
Not sure if this issue is also related: https://lab.civicrm.org/dev/core/issues/655
I was looking into the Soft Credit problem on the same same report when I found this issue. They both appear to be combining things in a Contribution Report that should not be combined, insofar as I can tell.https://lab.civicrm.org/dev/core/-/issues/735Query performance - suppress 'product' and related fields where products are ...2019-04-26T06:50:00ZeileenQuery performance - suppress 'product' and related fields where products are not in the databaseMost people hate the fact we waste an output field on premium on the contribution tab. They all think it should be replaced - but all have different replacements.
I don't want to solve that - I think the right solution for that is to f...Most people hate the fact we waste an output field on premium on the contribution tab. They all think it should be replaced - but all have different replacements.
I don't want to solve that - I think the right solution for that is to find funding to leap the interface.
What I DO think we can solve is the fact we are doing unnecessary joins / queries / processing to generate & display premiums - regardless of whether the site uses them. I think we could short-circuit that pretty cleanly by just doing a quick
"select id FROM civicrm_product_premium LIMIT 1' (cached) before adding product fields to our default return properties (with a small tpl tweak too)5.13.0https://lab.civicrm.org/dev/core/-/issues/736let's talk about indexes baby - let's talk about all the good things they cou...2022-10-03T05:03:56Zeileenlet's talk about indexes baby - let's talk about all the good things they could beThis is intended as a discussion and not necessarily a core change - sites can add their own indexes so this is more of a 'what have you added, what works' discussion post
I have a search that returns about 177k results based on a combi...This is intended as a discussion and not necessarily a core change - sites can add their own indexes so this is more of a 'what have you added, what works' discussion post
I have a search that returns about 177k results based on a combination of payment type & receive date.
Recent changes & in progress changes have gotten the time to render the search results page down from about 4 minutes to about 30 seconds.
However, I can get it down to 10 seconds by adding an additional index - a combined index on
payment_instrument_id + receive_date - ie
ALTER TABLE civicrm_contribution ADD INDEX payment_instrument_receive_date(payment_instrument_id, receive_date);
(note I'm comparing page render with page render not query time as more than one query could be affected)
The more indexes you have the longer it takes to write but I don't have any metrics on how much longer. It also takes up more disk space - some of our indexes are multiple GB.
OTOH they can make it quicker to retrieve.
Current indexes
KEY `UI_contrib_payment_instrument_id` (`payment_instrument_id`),
KEY `index_total_amount_receive_date` (`total_amount`,`receive_date`),
KEY `index_source` (`source`),
KEY `index_contribution_status` (`contribution_status_id`),
KEY `received_date` (`receive_date`),
KEY `check_number` (`check_number`),
KEY `index_creditnote_id` (`creditnote_id`),
KEY `FK_civicrm_contribution_contact_id` (`contact_id`),
KEY `FK_civicrm_contribution_financial_type_id` (`financial_type_id`),
KEY `FK_civicrm_contribution_contribution_page_id` (`contribution_page_id`),
KEY `FK_civicrm_contribution_contribution_recur_id` (`contribution_recur_id`),
KEY `FK_civicrm_contribution_address_id` (`address_id`),
KEY `FK_civicrm_contribution_campaign_id` (`campaign_id`),
My current thinking is to
- add receive_date & possibly contribution status_id to payment_instrument id index
- add receive_date to contribution_status_id index
@seamuslee @pfigel @sluc23 @davej @mfb have you guys tinkered with your indexes at all?https://lab.civicrm.org/dev/core/-/issues/737SMS not sent if "Send Immediately" option is chosen on the last screen2019-02-19T21:33:27ZjitendraSMS not sent if "Send Immediately" option is chosen on the last screenTo replicate -
1. Create an SMS
2. Fill all the req fields and click on "Send Immediately" option.
3. The SMS is not listed under `Scheduled` list and is not sent after the job is executed.To replicate -
1. Create an SMS
2. Fill all the req fields and click on "Send Immediately" option.
3. The SMS is not listed under `Scheduled` list and is not sent after the job is executed.5.10.3jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/738Adding Sub-Options of Custom Data2019-02-19T10:11:39ZGhost UserAdding Sub-Options of Custom DataHello.
Maybe I didn't know, but I didn't know.
I need to add a sub-option to private recipients. I can explain this with an example.
Suppose you have an option. When I make a choice here, there must be sub-options that are optional in...Hello.
Maybe I didn't know, but I didn't know.
I need to add a sub-option to private recipients. I can explain this with an example.
Suppose you have an option. When I make a choice here, there must be sub-options that are optional in this option.
In the meantime, there is City / County option, but when I choose the province does not come from the county information. (For Turkey)
1. Receiving
a. White Apple
b. Green apple
c. Red Apple
2. Pear
a. White Pear
b. Green Pear
c. Red Pear
Joomla 3.9.3
CiviCRM 5.10.2!
![001275](/uploads/240b66db42d115a9fc5308fd1527bfed/001275.png)https://lab.civicrm.org/dev/core/-/issues/739Field not found when sorting report by Case Type as a section header2019-02-25T20:47:12ZgrahamsmithField not found when sorting report by Case Type as a section headerAttempting to create a Case Detail report sorted by the field Case Type with the option "Section Header" checked does not work.
Error is:
> Unknown column 'case_civireport.case_type_name' in 'field list'
This is a probable regression,...Attempting to create a Case Detail report sorted by the field Case Type with the option "Section Header" checked does not work.
Error is:
> Unknown column 'case_civireport.case_type_name' in 'field list'
This is a probable regression, as addressed by: https://github.com/civicrm/civicrm-core/pull/114195.12.0https://lab.civicrm.org/dev/core/-/issues/740Notes: It isn't possible to edit note if the user uploaded an image larger th...2019-03-23T21:19:49ZPradeep Nayakpradpnayak@gmail.comNotes: It isn't possible to edit note if the user uploaded an image larger than 3 MByte(s)Steps:
* Click "View contact record"
* Find contact from the precondition
* Open profile
* Open "Notes" tab
* Click "Add Note"
* Fill in all required fields
* Open the "Attachment(s)" tab
* Upload an image larger than 3 MByte(s)
* Clic...Steps:
* Click "View contact record"
* Find contact from the precondition
* Open profile
* Open "Notes" tab
* Click "Add Note"
* Fill in all required fields
* Open the "Attachment(s)" tab
* Upload an image larger than 3 MByte(s)
* Click "Save"
**Actual result:** It isn't possible to edit note if the user uploaded an image larger than 3 MByte(s).
**Expected result:** It should be possible to edit note if the user uploaded an image larger than 3 MByte(s)
![Before](/uploads/ec2da739b8eb4c6273033d8cea390742/Before.gif)5.13.0https://lab.civicrm.org/dev/core/-/issues/741Print/Merge: ODT output does not produce page-breaks2022-10-04T05:03:29ZtottenPrint/Merge: ODT output does not produce page-breaksSteps to reproduce
* Search for contacts
* Select 3 contacts
* Choose the task to print/merge a document
* Choose the output format -- PDF, DOCX, or ODT
In PDF and DOCX format, each contact's data is displayed on a separate page. If yo...Steps to reproduce
* Search for contacts
* Select 3 contacts
* Choose the task to print/merge a document
* Choose the output format -- PDF, DOCX, or ODT
In PDF and DOCX format, each contact's data is displayed on a separate page. If you generate ODT and view it in LibreOffice 5.x or 6.1, it produces some weird outlines -- but these do not translate into page-breaks. (The weird lines appear in normal WYSIWYG mode; they disappear in "Print Preview" mode. In neither case do they appear as page-breaks.)
![Screen_Shot_2019-02-19_at_5.44.01_PM](/uploads/047a756e086ec11e4510cde6d406dcfa/Screen_Shot_2019-02-19_at_5.44.01_PM.png)
This was observed when using either PHPWord 0.14 or 0.15 in Civi. Based on [this upstream issue/PR](https://github.com/PHPOffice/PHPWord/issues/824), ODT pagebreaks ought to be working with PHPWord 0.14+
```
me@localhost:~/src/PHPWord$ git tag --contains def9123575ed9e3c2e9e36aa4e0ba6f0d09fc6c1
0.14.0
0.15.0
0.16.0
```
(Note: This is not high priority for me. I just wanted to record because it came up incidentally in some other testing.)https://lab.civicrm.org/dev/core/-/issues/742Repeated warning: "simplexml_load_file(): I/O warning : failed to load extern...2023-02-04T05:03:30ZtottenRepeated warning: "simplexml_load_file(): I/O warning : failed to load external entity ".../xml/Menu/Activity.xml"__Environment__: Observed in Civi 5.10 and 5.7 with bknix-min (PHP 5.6 / MySQL 5.5). Haven't tested other environments yet.
__Steps to Reproduce__: Login as admin. Use `/civicrm/clearcache` (i.e. the browser-based clear)
__Outcome__:
...__Environment__: Observed in Civi 5.10 and 5.7 with bknix-min (PHP 5.6 / MySQL 5.5). Haven't tested other environments yet.
__Steps to Reproduce__: Login as admin. Use `/civicrm/clearcache` (i.e. the browser-based clear)
__Outcome__:
![Screen_Shot_2019-02-20_at_2.35.53_AM](/uploads/4d305c7b2d791d69a3b1707a12c3b940/Screen_Shot_2019-02-20_at_2.35.53_AM.png)
__Comments__:
* The warning message references many Menu XML files, but I think the first is the only the matters. It actually has an XML entity (`&`); removing that entity prevents the warnings (but would obviously break that menu item).
* It seems strange that `&` would be regarded as an external entity.https://lab.civicrm.org/dev/core/-/issues/743Case report showing 1 result2019-05-25T06:06:01ZDevAppCase report showing 1 resultAs of 5.10.2 the case summary report joins with relationships.
`
SELECT SQL_CALC_FOUND_ROWS c2_civireport.sort_name as civicrm_c2_client_name, c2_civireport.id as civicrm_c2_id, case_civireport.id as civicrm_case_id, case_civireport.subj...As of 5.10.2 the case summary report joins with relationships.
`
SELECT SQL_CALC_FOUND_ROWS c2_civireport.sort_name as civicrm_c2_client_name, c2_civireport.id as civicrm_c2_id, case_civireport.id as civicrm_case_id, case_civireport.subject as civicrm_case_subject, case_civireport.status_id as civicrm_case_status_id, case_civireport.case_type_id as civicrm_case_case_type_id, case_civireport.start_date as civicrm_case_start_date, case_civireport.end_date as civicrm_case_end_date
FROM civicrm_contact contact_civireport
inner join civicrm_relationship relationship_civireport on contact_civireport.id = relationship_civireport.contact_id_b
inner join civicrm_case case_civireport on case_civireport.id = relationship_civireport.case_id
inner join civicrm_relationship_type relationship_type_civireport on relationship_type_civireport.id=relationship_civireport.relationship_type_id
inner join civicrm_case_contact case_contact_civireport on case_contact_civireport.case_id = case_civireport.id
inner join civicrm_contact c2_civireport on c2_civireport.id=case_contact_civireport.contact_id
WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*29[[:cntrl:]]*' AND ( case_civireport.is_deleted = 0 )
ORDER BY c2_civireport.sort_name ASC
LIMIT 0, 50
`
This only returns 1 result on a client's case summary report. Performing a Find Case returns 400+ results.
Reverting to an earlier version of the report fixes the issue:
`
SELECT SQL_CALC_FOUND_ROWS c2_civireport.sort_name as civicrm_c2_client_name, c2_civireport.id as civicrm_c2_id, case_civireport.id as civicrm_case_id, case_civireport.subject as civicrm_case_subject, case_civireport.status_id as civicrm_case_status_id, case_civireport.case_type_id as civicrm_case_case_type_id, case_civireport.start_date as civicrm_case_start_date, case_civireport.end_date as civicrm_case_end_date
FROM civicrm_case case_civireport
inner join civicrm_case_contact case_contact_civireport on case_contact_civireport.case_id = case_civireport.id
inner join civicrm_contact c2_civireport on c2_civireport.id=case_contact_civireport.contact_id
WHERE case_civireport.case_type_id REGEXP '[[:cntrl:]]*29[[:cntrl:]]*' AND ( case_civireport.status_id IN (1) )
LIMIT 0, 50
`
It appears the case summary report has changed to support relationships.
Checking the civicrm_relationship for a case ID that is valid, there isn't a case_id present for that case. Ideally this report should not be dependent (INNER JOIN) for a relationship existing and should begin withh the civicrm_case table.5.15.0https://lab.civicrm.org/dev/core/-/issues/3239Contribution reports don't include thank-you date2022-04-22T15:51:49ZJonGoldContribution reports don't include thank-you dateThis is an issue that a couple of people have noted [on Stack Exchange](https://civicrm.stackexchange.com/questions/15374/thank-you-letter-report/15377). However, this is the first time anyone has paid me to fix it :) PR incoming.This is an issue that a couple of people have noted [on Stack Exchange](https://civicrm.stackexchange.com/questions/15374/thank-you-letter-report/15377). However, this is the first time anyone has paid me to fix it :) PR incoming.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/3593{contact.hash} not populated in Flexmailer/Mosaico2022-06-11T14:55:07ZBjörn Endres{contact.hash} not populated in Flexmailer/MosaicoI don't know if this is the right forum, but but seems like the `{contact.hash}` token is not populated when using Flexmailer/Mosaico.
Observed on:
* CiviCRM `5.5.1`
* Flexmailer `0.2-6ff530c`
* Mosaico `2.0-beta4`I don't know if this is the right forum, but but seems like the `{contact.hash}` token is not populated when using Flexmailer/Mosaico.
Observed on:
* CiviCRM `5.5.1`
* Flexmailer `0.2-6ff530c`
* Mosaico `2.0-beta4`5.37.0https://lab.civicrm.org/dev/core/-/issues/745Smart groups broken when "Enable multiple bulk email address for a contact" s...2019-03-07T19:43:17ZscardiniusSmart groups broken when "Enable multiple bulk email address for a contact" setting is offWhen setting "Enable multiple bulk email address for a contact" is off then ALL smart groups have additional condition (Email On Hold) because of false-positive effect of code:
https://github.com/civicrm/civicrm-core/pull/12942/files
``...When setting "Enable multiple bulk email address for a contact" is off then ALL smart groups have additional condition (Email On Hold) because of false-positive effect of code:
https://github.com/civicrm/civicrm-core/pull/12942/files
```php
elseif ($id == 'email_on_hold') {
if ($onHoldValue = CRM_Utils_Array::value('email_on_hold', $formValues)) {
$onHoldValue = (array) $onHoldValue;
$params[] = array('on_hold', 'IN', $onHoldValue, 0, 0);
}
}
```
For such case `email_on_hold` has value:
```php
$formValues['email_on_hold'] = [
'on_hold' => NULL,
];
```
which is false-positive in condition5.11