Development issueshttps://lab.civicrm.org/groups/dev/-/issues2022-06-11T14:54:54Zhttps://lab.civicrm.org/dev/core/-/issues/3585Mosaico Hangs2022-06-11T14:54:54ZGrowMosaico HangsWe are suddenly experiencing a problem with Mosaico.
The grey bar appears at bottom of screen, "Save" button at top right disappears, and templates and designing/templates on left of screen remains frozen.
![image](/uploads/0ac8e12522b3...We are suddenly experiencing a problem with Mosaico.
The grey bar appears at bottom of screen, "Save" button at top right disappears, and templates and designing/templates on left of screen remains frozen.
![image](/uploads/0ac8e12522b3d175cb95ab16973c43e1/image.png)
Are there any known issues that have come up since recent updates either to Civi or Mosaico?
- CMS: WordPress (latest)
- Plugins (all updated)
- Browser: Chrome (latest)
- Civi Extensions - Documenten (does not want to upgrade - might need to remove it)
thankshttps://lab.civicrm.org/dev/core/-/issues/2944Make report column groups hookable2023-10-13T05:03:24ZyashodhaMake report column groups hookableProvide a way to manipulate column groups in report to change the order of the column checkboxes in the _Columns_ tab.Provide a way to manipulate column groups in report to change the order of the column checkboxes in the _Columns_ tab.yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/2943CiviCRM System Status Page tabs links a bit broken2023-10-12T05:03:15Zluke.stewartCiviCRM System Status Page tabs links a bit brokenOverview
----------------------------------------
If you right click on the "Visible" or "Hidden" tabs and open in new tab on the System Status Check page you get the following URLS which are broken:
https://dmaster.demo.civicrm.org/civi...Overview
----------------------------------------
If you right click on the "Visible" or "Hidden" tabs and open in new tab on the System Status Check page you get the following URLS which are broken:
https://dmaster.demo.civicrm.org/civicrm/a/#/tab-status-visible-1
https://dmaster.demo.civicrm.org/civicrm/a/#tab-status-visible-0
Reproduction steps
----------------------------------------
1. Go to https://dmaster.demo.civicrm.org/civicrm/a/#/status
1. Right click (or use a OS/browser appropriate method to do the similar) on "Active" or "Hidden" tabs select Open in New Tab/Window
1. See the "unknown path" error page when you are taken to https://dmaster.demo.civicrm.org/civicrm/a/#/status or https://dmaster.demo.civicrm.org/civicrm/a/#/tab-status-visible-1
Expected behaviour
----------------------------------------
Should the page load with the appropriate tab selected. Should these be repurposed as a non link element to prevent this bad behaviour being available.
Does it really matter on such an admin focused page.
Perhaps not.https://lab.civicrm.org/dev/core/-/issues/3561CiviMail stopped sending email after upgrade to CiviCRM 5.432022-06-11T14:53:42Zlishaw1968lshaw@lacliniquefinanciere.comCiviMail stopped sending email after upgrade to CiviCRM 5.43CiviMail does not send test email after upgrade to CiviCRM 5.43CiviMail does not send test email after upgrade to CiviCRM 5.435.43.1https://lab.civicrm.org/dev/core/-/issues/2942Displaying map for contact address causes WP error2021-11-15T07:59:28Ztreasurer@tricitiesprideDisplaying map for contact address causes WP errorOverview
----------------------------------------
Selecting "map" from the contact detail causes a Wordpress error.
![image](/uploads/6da1e74e2278d36dd879c7cf4a106605/image.png)
![image](/uploads/86c348df39b887caa6d56a9f92756bee/image....Overview
----------------------------------------
Selecting "map" from the contact detail causes a Wordpress error.
![image](/uploads/6da1e74e2278d36dd879c7cf4a106605/image.png)
![image](/uploads/86c348df39b887caa6d56a9f92756bee/image.png)
Reproduction steps
----------------------------------------
1. Click on **Contacts -> Map**.
Current behaviour
----------------------------------------
Selecting "map" from the contact detail causes a Wordpress error.
![image](/uploads/6da1e74e2278d36dd879c7cf4a106605/image.png)
![image](/uploads/86c348df39b887caa6d56a9f92756bee/image.png)
```
Error Details
=============
An error of type E_ERROR was caused in line 128 of the file /wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Task/Map.php. Error message: Uncaught Error: Using $this when not in object context in /wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Task/Map.php:128
Stack trace:
#0 /wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Task/Map.php(92): CRM_Contact_Form_Task_Map::createMapXML(Array, 1, Object(CRM_Contact_Form_Task_Map), true, 'Contact')
#1 /wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(629): CRM_Contact_Form_Task_Map->preProcess()
#2 /wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Display.php(76): CRM_Core_Form->buildForm()
#3 /wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contact_Form_Task_Map), 'display')
#4 /wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_C
```
Expected behaviour
----------------------------------------
Map should display
Environment information
----------------------------------------
* __Browser:__ _Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36_
* __CiviCRM:__ Version 5.43.0
* __PHP:__ _7.4.22__
* __CMS:__ _Wordpress Version 5.8.1_
* __Database:__ MariaDB 10.3.31-MariaDB-log-cll-lve - MariaDB Server..._
* __Web Server:__ Apache 2.4.48_5.43.1https://lab.civicrm.org/dev/core/-/issues/2941Follow-up task - Remove the CiviCRM Connections functionality from CiviCRM co...2024-03-21T05:03:26Zjustinfreeman (Agileware)Follow-up task - Remove the CiviCRM Connections functionality from CiviCRM core (Task 2 of 2) - Remove the codeThis is a follow-up task to https://lab.civicrm.org/dev/core/-/issues/2910 - which was changed to only remove the menu item from the menu as an intermediary step.
To complete this work, this task will remove the CiviCRM Connections func...This is a follow-up task to https://lab.civicrm.org/dev/core/-/issues/2910 - which was changed to only remove the menu item from the menu as an intermediary step.
To complete this work, this task will remove the CiviCRM Connections functionality from CiviCRM core. This concept was already approved on https://lab.civicrm.org/dev/core/-/issues/2910
Agileware Ref: CIVIBLD-286https://lab.civicrm.org/dev/core/-/issues/2940Remove requirement to have a bounce email account setup2022-09-30T20:45:40ZseamusleeRemove requirement to have a bounce email account setupWith some more modern SMTP providers bounce email accounts may not be necessary for CiviMail Bounces to work because e.g. with Amazon SES / Sendgrid you can get the bounces processed via webhooks instead.
However within the code base we...With some more modern SMTP providers bounce email accounts may not be necessary for CiviMail Bounces to work because e.g. with Amazon SES / Sendgrid you can get the bounces processed via webhooks instead.
However within the code base we assume we need a bounce account to generate stuff like [no-reply email address](https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/BAO/Domain.php#L364) or when we are getting [message ids](https://github.com/civicrm/civicrm-core/blob/513f6a469927c5dc5a41905feb7c3cff2cf15f0b/CRM/Campaign/BAO/Petition.php#L548)
It would be nice to get rid of this reliance on it being the default mail account which is the bounce processing one https://github.com/civicrm/civicrm-core/blob/513f6a469927c5dc5a41905feb7c3cff2cf15f0b/CRM/Core/BAO/MailSettings.php#L59
cc @JoeMurrayMonish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/2939getFieldValue failed on empty multiple-contact reference field2022-07-02T16:45:27ZAdam WoodgetFieldValue failed on empty multiple-contact reference fieldWhen submitting a record that includes a custom field of multiple contact reference type, if that field is empty (i.e. no contacts), an error message "getFieldValue failed" sometimes occurs and the screen freezes and needs to be reloaded...When submitting a record that includes a custom field of multiple contact reference type, if that field is empty (i.e. no contacts), an error message "getFieldValue failed" sometimes occurs and the screen freezes and needs to be reloaded. The record update seems to go ahead nonetheless.
This seems to be due to a change introduced in https://github.com/civicrm/civicrm-core/pull/18941 that adds support to CRM/Core/BAO/CustomField.php for multiple contact fields. The new logic checks that the value is of the correct type (array or numeric) but omits the check that the value is not empty. (Before this change, one of the conditions was that the value does not equate to false).
Before change (note the `&& $value`):
```php
if ($field['data_type'] == 'ContactReference' && $value) {
if (is_numeric($value)) {
$display = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $value, 'display_name');
}
else {
$display = $value;
}
}
```
After change:
```php
if ($field['data_type'] == 'ContactReference' && (is_array($value) || is_numeric($value))) {
$displayNames = [];
foreach ((array) $value as $contactId) {
$displayNames[] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactId, 'display_name');
}
$display = implode(', ', $displayNames);
}
elseif ($field['data_type'] == 'ContactReference') {
$display = $value;
}
```
Suggested fix - remove vulnerability to empty scalar values being passed:
```php
if ($field['data_type'] == 'ContactReference' && (is_array($value) || is_numeric($value))) {
if (empty($value))
{
$display = '';
}
else
{
$displayNames = [];
foreach ((array) $value as $contactId) {
$displayNames[] = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $contactId, 'display_name');
}
$display = implode(', ', $displayNames);
}
}
elseif ($field['data_type'] == 'ContactReference') {
$display = $value;
}
```5.45.0https://lab.civicrm.org/dev/core/-/issues/2938Proposal - add created_date, modified_date to civicrm_relationship2022-11-25T02:00:54ZeileenProposal - add created_date, modified_date to civicrm_relationshipIt can be useful to know when a relationship was created in CiviCRM (as opposed to when it started)It can be useful to know when a relationship was created in CiviCRM (as opposed to when it started)https://lab.civicrm.org/dev/core/-/issues/2937CiviCRM should find proper file id based on file name in case sensitivity mode2023-11-14T05:03:21ZscardiniusCiviCRM should find proper file id based on file name in case sensitivity modeOverview
----------------------------------------
Uploading images via webform to `File` custom field causes invalid preview for files with similar names like *picture.jpg* and *Picture.JPG*
Reproduction steps
-------------------------...Overview
----------------------------------------
Uploading images via webform to `File` custom field causes invalid preview for files with similar names like *picture.jpg* and *Picture.JPG*
Reproduction steps
----------------------------------------
1. create webform for creating contacts with image on `File` custom field
1. fill out the form with image named *Picture.JPG* (first contact)
1. fill out again the form with other image similar named *picture.jpg* (secord contact)
1. open the first contact -> *Picture.JPG* is on display of custom field
1. open the second contact -> *Picture.JPG* is on display of custom field but should be *picture.jpg*
Current behaviour
----------------------------------------
* from unix server perspective files *picture.jpg* and *Picture.JPG* are different - this is fine
* from `CRM_Core_DAO::getFieldValue('CRM_Core_DAO_File', $value, 'id', 'uri');` civicrm method *Picture.JPG* is equal *picture.jpg* because **DB_DataObject** package doesn't use `BINARY` for conditions
https://github.com/civicrm/civicrm-core/blob/c6773e51b512e6531198ffe0c91901f05956d79f/CRM/Core/BAO/CustomField.php#L1174
```php
case 'File':
// In the context of displaying a profile, show file/image
if ($value) {
if ($entityId) {
if (CRM_Utils_Rule::positiveInteger($value)) {
$fileId = $value;
}
else {
$fileId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_File', $value, 'id', 'uri');
}
```
Expected behaviour
----------------------------------------
CiviCRM should find proper file id based on file name in case sensitivity mode https://dev.mysql.com/doc/refman/5.7/en/case-sensitivity.html
Environment information
----------------------------------------
* __CiviCRM:__ _Master/5.35_
* __PHP:__ _7.3__
* __CMS:__ _Drupal 7_
* __Database:__ _5.7.35-38-log Percona Server_
* __Web Server:__ _Apache 2.4_
Comments
----------------------------------------
simple workaround
```php
// $fileId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_File', $value, 'id', 'uri');
$query = "SELECT id FROM civicrm_file WHERE uri = BINARY %1";
$params = [
1 => [$value, 'String'],
];
$fileId = (int) CRM_Core_DAO::singleValueQuery($query, $params);
```https://lab.civicrm.org/dev/core/-/issues/2936When creating a mailing, the name has a character limit but doesn't check for...2023-10-16T05:03:17ZDevAppWhen creating a mailing, the name has a character limit but doesn't check for oneWhen creating a mailing, the name has a character limit but doesn't check for one
The mailing name, subject, from name and from email have a DB field limit of 128 characters, yet the GUI allows for more.
Checked for existing tickets, b...When creating a mailing, the name has a character limit but doesn't check for one
The mailing name, subject, from name and from email have a DB field limit of 128 characters, yet the GUI allows for more.
Checked for existing tickets, but couldn't find this ticket or related error.
![CiviMail_copy_warning](/uploads/422c35417430f15ebe67462800c73628/CiviMail_copy_warning.jpeg)
![error](/uploads/c3276c0c638a2bfa61d482bf2246cf34/error.png)https://lab.civicrm.org/dev/core/-/issues/2935Print/Merge produces blank results when using a docx or odt template file2023-07-27T10:57:01ZChrisHardiePrint/Merge produces blank results when using a docx or odt template fileOverview
----------------------------------------
When trying to generate thank you letters or other printed/merged documents, and when uploading a .docx or .odt template file to use, CiviCRM generates blank output (e.g. a blank PDF file...Overview
----------------------------------------
When trying to generate thank you letters or other printed/merged documents, and when uploading a .docx or .odt template file to use, CiviCRM generates blank output (e.g. a blank PDF file, a blank .docx file). When generating the same document without uploading a template file, CiviCRM successfully generates output that contains the desired document body.
Reproduction steps
----------------------------------------
1. Find one or more contacts, or contributions, or other entities that can be printed/merged
1. Select an action that involves print/merge (e.g. thank you letters)
1. Upload a template document to use for the printed/merged output, in .odt or .docx format
1. Generate the merged document in any format (pdf, docx, html, odt)
1. Observe that the resulting document is blank
Expected behaviour
----------------------------------------
When a merged/generated document is produced, it should use the uploaded template and the specified document body, and not be blank.
Environment information
----------------------------------------
* __Browser:__ Attempted with Safari 15.1 and Chrome 96.0.4664.27 on macOS
* __CiviCRM:__ 5.42.0
* __PHP:__ 7.4
* __CMS:__ WordPress 5.8.1https://lab.civicrm.org/dev/drupal/-/issues/168Notice: Undefined variable: custom_link in civicrm_handler_field_link_contact...2022-12-01T01:13:06ZAndrew WassonNotice: Undefined variable: custom_link in civicrm_handler_field_link_contact->render_link() (line 118 of civicrm/drupal/modules/views/civicrm/civicrm_handler_field_link_contact.inc).Hi Guys,
It's been a while (years) since I've contributed in the issue queue so I'm a little rusty.
This is just an annoyance where CiviCRM tries to render the Contact Link in a view for visitors who don't have the permissions to see i...Hi Guys,
It's been a while (years) since I've contributed in the issue queue so I'm a little rusty.
This is just an annoyance where CiviCRM tries to render the Contact Link in a view for visitors who don't have the permissions to see it. The result is a PHP Warning:
```Notice: Undefined variable: custom_link in civicrm_handler_field_link_contact->render_link() (line 118 of /sites/all/modules/civicrm/drupal/modules/views/civicrm/civicrm_handler_field_link_contact.inc).```
In order to squelch the notice I've added a conditional isset($custom_link). I can't see any adverse consequences from adding it and I'll be happy to make a patch if someone can point me in the direction of some docs for doing so.
Cheers,
Andrew5.57.0https://lab.civicrm.org/dev/core/-/issues/2934Searchkit feedback2023-10-10T05:03:21ZeileenSearchkit feedbackRequest for COUNTIF() in the transforms - ie count if field value > xRequest for COUNTIF() in the transforms - ie count if field value > xhttps://lab.civicrm.org/dev/core/-/issues/2933Search kit feedback - afforms don't offer date range filters on aggregated dates2023-10-27T05:03:24ZeileenSearch kit feedback - afforms don't offer date range filters on aggregated datesThe default value feature in form builder is treating date values as string values. When date values are entered into the form, a LIKE text match is applied to the date. It would be helpful if this were formatt-able as a date.
This is s...The default value feature in form builder is treating date values as string values. When date values are entered into the form, a LIKE text match is applied to the date. It would be helpful if this were formatt-able as a date.
This is strongly connected to https://lab.civicrm.org/dev/core/-/issues/2932 & relates to how the forms handle aggregate dates whereas that is how the search displays do.https://lab.civicrm.org/dev/core/-/issues/2932Search-kit transforms don't work on aggregate fields2023-10-10T05:03:21ZeileenSearch-kit transforms don't work on aggregate fieldsFeedback from user testing using new transforms
When a date field already has a field transformation on it - such as MIN(receive_date) to arrive at the first donation date of a contact after a certain date - the date is not formattable ...Feedback from user testing using new transforms
When a date field already has a field transformation on it - such as MIN(receive_date) to arrive at the first donation date of a contact after a certain date - the date is not formattable as a date(), and remains a datetime. This is difficult to work with when filtering, creating forms default values, etc. It would be helpful if we could add date transforms to date fields even if field transformations are already applied.
@colemanw I've copied the description as reported - but not sure if this will be clear to you. In this case they had a search with MAX(receive_date) as one of the fields - it's a date time field but they wanted the final form to support filtering it as a date. We don't treat MIN(dates) as dates in terms of offering search ranges and because they can't truncate them to a date only they can't use a string filter eitherhttps://lab.civicrm.org/dev/core/-/issues/2931Deadlocks on acl_contact_cache table2022-07-16T20:22:41ZandyburnsDeadlocks on acl_contact_cache tableWe are seeing the acl_contact_cache table locking up our entire system. The query has been seen running for over 6000 seconds on multiple occasions. Slowly, queries stack up behind this and other requests by other users to use acl_contac...We are seeing the acl_contact_cache table locking up our entire system. The query has been seen running for over 6000 seconds on multiple occasions. Slowly, queries stack up behind this and other requests by other users to use acl_contact_cache stack up as well.
We had not previously set the max_execution_time on the database and that has now been set to 450 on the database, which prevents the long-running query from tangling up the entire system. However, the conflict appears to happen when two users are doing an operation that tries to populate the acl_contact_cache table at the same time.
Our database has almost 900,000 contacts, and almost 500,000 activities logged. So a user goes to search > find activities and leaves conditions blank, and this query occurs:
```
SELECT count(DISTINCT contact_a.id) as rowCount FROM civicrm_contact contact_a LEFT JOIN civicrm_activity_contact
ON ( civicrm_activity_contact.contact_id = contact_a.id ) LEFT JOIN civicrm_activity
ON ( civicrm_activity.id = civicrm_activity_contact.activity_id
AND civicrm_activity.is_deleted = 0 AND civicrm_activity.is_current_revision = 1 ) INNER JOIN civicrm_contact
ON ( civicrm_activity_contact.contact_id = civicrm_contact.id and civicrm_contact.is_deleted != 1 ) INNER JOIN civicrm_acl_contact_cache aclContactCache ON contact_a.id = aclContactCache.contact_id WHERE ( ( civicrm_activity.activity_type_id = 101 AND civicrm_activity.status_id = 9 ) OR ( civicrm_activity.activity_type_id IN (2,3,1,104,109,78,76,85,93,4,5,6,7,8,12,17,19,22,34,40,35,36,37,38,39,44,45,46,47,48,51,58,54,52,80,81,84,94,96,97,99,100,101,103,105,106) ) ) AND aclContactCache.user_id = 26114 AND contact_a.is_deleted = 0 AND (civicrm_activity.activity_type_id IN (1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 17, 19, 22, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 58, 76, 77, 78, 80, 81, 82, 84, 85, 86, 87, 93, 94, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109) AND civicrm_activity.`id` IN (SELECT `id` FROM `civicrm_activity` WHERE id IN (SELECT activity_id FROM civicrm_activity_contact WHERE contact_id IN (SELECT contact_id FROM civicrm_acl_contact_cache WHERE user_id = 26114) AND contact_id IN (SELECT `id` FROM `civicrm_contact` WHERE is_deleted != 1))));
```
6000 seconds later, the database is hung, with about 100 queries stuck behind it. Manually killing all processes that are trying to use the acl_contact_cache table will clear out the backlog of other queries.
The table is transitory, as after getting the results there is a truncate almost immediately after.
One proposed solution could be to individualize the acl_contact_cache table to create for each user, eg. acl_contact_cache_{contact_id} … This would allow the acl_contact_cache_XXX table to get locked and not adversely affect every other user on the system.
The system should do a check upon my first search and see if my acl_contact_cache_XXX table is built, if it is not, build it upon all the contacts I have access to (regardless of the particular search).
Additionally the acl_contact_cache_XXX table could persist for a pre-defined period of time (e.g. 1 hour) so it doesn't have to search everyone in the db each time. Same concept for civicrm_group_contact_cache. Could have major performance benefits.
Also finding a way to keep this table from being locked would likely require a reimagination of how the table is actually used. Another consideration would be the use of the MEMORY engine for this table, to permit faster population since its contents are transitory anyway
Thoughts?
@eileen @kcristiano
Similar issue on acl_cache table: https://lab.civicrm.org/dev/core/-/issues/1486.https://lab.civicrm.org/dev/core/-/issues/2930Hardcoded dollar currency symbol in event registration modals2024-01-10T05:03:21ZBradley TaylorHardcoded dollar currency symbol in event registration modalsIn this screenshot the event currency is set to GBP (£), but the total amount is shown as USD ($). The totals are being summed correctly, but the symbol is hardcoded:
![Screenshot_2021-10-31_at_17.15.05](/uploads/38d9076ae581a30aa5a7808...In this screenshot the event currency is set to GBP (£), but the total amount is shown as USD ($). The totals are being summed correctly, but the symbol is hardcoded:
![Screenshot_2021-10-31_at_17.15.05](/uploads/38d9076ae581a30aa5a7808de1705a08/Screenshot_2021-10-31_at_17.15.05.png)
It looks like the currency symbol is hardcoded in `templates/CRM/Price/Form/LineItem.tpl`.
A similar issue occurs when attempting to change selections for the event. In this case, the currency symbol is not hardcoded, but defaults to the default currency code for the installation - not for the currency code associated with the event.
![Screenshot_2021-10-31_at_17.26.05](/uploads/838c95c492eeb558ab3f7e6f7060a31f/Screenshot_2021-10-31_at_17.26.05.png).
Both of these occurences should be updated to use the currency configured as part of the event (on the Fees tab).Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/3603Undefined index: error-codes in recaptcha_check_answer()2024-02-16T05:03:24Zchris_bluejacUndefined index: error-codes in recaptcha_check_answer()## Overview
When non-authenticated user subscribes to mailing list at /civicrm/mailing/subscribe, checks the "I am not a robot" reCAPTCHA, and clicks subscribe. The subscription request is processed properly, but an error is thrown:
Not...## Overview
When non-authenticated user subscribes to mailing list at /civicrm/mailing/subscribe, checks the "I am not a robot" reCAPTCHA, and clicks subscribe. The subscription request is processed properly, but an error is thrown:
Notice: Undefined index: error-codes in recaptcha_check_answer() (line 159 of /bitnami/drupal/modules/contrib/civicrm/ext/recaptcha/lib/recaptcha/recaptchalib.php).
## Reproduction steps
1. /civicrm/mailing/subscribe
2. complete email address, check relevant mailing list (in this case, "General Newsletter")
3. Check "I'm not a robot" in reCAPTCHA
4. Click "Subscribe"
5. Subscription is processed properly.
6. Error reported on confirmation page.
## Current behaviour
Error message presented.
Functionality of reCAPTCHA and subscription is okay.
~~~
Notice: Undefined index: error-codes in recaptcha_check_answer() (line 159 of /bitnami/drupal/modules/contrib/civicrm/ext/recaptcha/lib/recaptcha/recaptchalib.php).
~~~
## Expected behaviour
No error message
## Environment Information
- CiviCRM: 5.40.2
- PHP: 7.3.27
- CMS: Drupal 7.82
- Database: MySQL 5.7.33
- Web Server: Apache 2.4.46
- reCAPTCHA: Version 5.40.2
![Screenshot_2021-10-31_084608](/uploads/286470768de6dd8bc6a632827856eafd/Screenshot_2021-10-31_084608.png)https://lab.civicrm.org/dev/civicrm-asset-plugin/-/issues/19Issues with the extension name vs key while building2021-11-09T12:08:26ZVangelisPIssues with the extension name vs key while buildingI've found an issue that relates with the way this component is reading the information from the extension and creates the relevant folder.
One example is `stripe` (but many more are having the same issue). Here is how we include it int...I've found an issue that relates with the way this component is reading the information from the extension and creates the relevant folder.
One example is `stripe` (but many more are having the same issue). Here is how we include it into composer:
```json
{
"name": "civicrm/extensions",
"description": "CiviCRM extensions",
"type": "civicrm-extension",
"require": {
"civicrm/stripe": "6.6.3"
},
"repositories": [
{
"type": "vcs",
"url": "https://lab.civicrm.org/extensions/stripe.git"
}
]
}
```
Now, due to [this line](https://lab.civicrm.org/dev/civicrm-asset-plugin/-/blob/master/src/ExtensionAssetRule.php#L17) , what is actually being created under the folder `web/libraries/civicrm` is `com.drastikbydesign.stripe` which is the `key` of the extension and not the project name (shortname).
In the meantime, stripe is being downloaded under the vendor folder as `stripe` and not as `com.drastikbydesign.stripe`.
If stripe is including some JS/CSS, those will NOT be read in CiviCRM as Civi is searching for the folder `web/libraries/civicrm/stripe` and not `web/libraries/civicrm/com.drastikbydesign.stripe`.
I can think of 2 possible solutions here:
1. instead of the attribute `key`, use (?) the `<file>` tag?
2. keep reading the attribute `key` as-is but also pass the actual folder name (which should be under the attribute `file`)
Any thoughts?