Error "Invalid parameter number: parameter was not defined" after selecting media

Created on 17 February 2022, about 3 years ago
Updated 19 November 2024, 5 months ago

Problem/Motivation

After checking an image and clicking the "Select assets" button, we get an error message inside the media browser preventing us from continuing.

Steps to reproduce

Install Media: Acquia DAM per README, associate with a media type and make sure Acquia DAM credentials are setup (token, and for the active user).

Browse for media with Media: Acquia DAM, check an image and click the "Select assets" button. The following error is displayed:

The website encountered an unexpected error. Please try again later.

Drupal\Core\Database\DatabaseExceptionWrapper: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined: SELECT "base_table"."vid" AS "vid", "base_table"."mid" AS "mid" FROM "media" "base_table" INNER JOIN "media_field_data" "media_field_data" ON "media_field_data"."mid" = "base_table"."mid" INNER JOIN "media__field_acquiadam_asset_id" "media__field_acquiadam_asset_id" ON "media__field_acquiadam_asset_id"."entity_id" = "base_table"."mid" WHERE ("media_field_data"."bundle" = :db_condition_placeholder_0) AND ((LOWER("media__field_acquiadam_asset_id"."field_acquiadam_asset_id_value") IN (LOWER(:media__field_acquiadam_asset_id_field_acquiadam_asset_id_value1b2b95ea-301a-4c16-80eb-f4061aaf84fe)))); Array ( [:db_condition_placeholder_0] => widen_image [:media__field_acquiadam_asset_id_field_acquiadam_asset_id_value1b2b95ea-301a-4c16-80eb-f4061aaf84fe] => 1b2b95ea-301a-4c16-80eb-f4061aaf84fe ) in Drupal\Core\Entity\Query\Sql\Query->result() (line 271 of core/lib/Drupal/Core/Entity/Query/Sql/Query.php).

Drupal\Core\Database\StatementWrapper->execute(Array, Array) (Line: 874)
Drupal\Core\Database\Connection->query('SELECT "base_table"."vid" AS "vid", "base_table"."mid" AS "mid"
FROM
{media} "base_table"
INNER JOIN {media_field_data} "media_field_data" ON [media_field_data].[mid] = [base_table].[mid]
INNER JOIN {media__field_acquiadam_asset_id} "media__field_acquiadam_asset_id" ON [media__field_acquiadam_asset_id].[entity_id] = [base_table].[mid]
WHERE ("media_field_data"."bundle" = :db_condition_placeholder_0) AND ((LOWER("media__field_acquiadam_asset_id"."field_acquiadam_asset_id_value") IN (LOWER(:media__field_acquiadam_asset_id_field_acquiadam_asset_id_value1b2b95ea-301a-4c16-80eb-f4061aaf84fe))))', Array, Array) (Line: 183)
Drupal\Core\Database\Driver\pgsql\Connection->query('SELECT "base_table"."vid" AS "vid", "base_table"."mid" AS "mid"
FROM
{media} "base_table"
INNER JOIN {media_field_data} "media_field_data" ON [media_field_data].[mid] = [base_table].[mid]
INNER JOIN {media__field_acquiadam_asset_id} "media__field_acquiadam_asset_id" ON [media__field_acquiadam_asset_id].[entity_id] = [base_table].[mid]
WHERE ("media_field_data"."bundle" = :db_condition_placeholder_0) AND ((LOWER("media__field_acquiadam_asset_id"."field_acquiadam_asset_id_value") IN (LOWER(:media__field_acquiadam_asset_id_field_acquiadam_asset_id_value1b2b95ea-301a-4c16-80eb-f4061aaf84fe))))', Array, Array) (Line: 512)
Drupal\Core\Database\Query\Select->execute() (Line: 147)
Drupal\Core\Database\Driver\pgsql\Select->execute() (Line: 271)
Drupal\Core\Entity\Query\Sql\Query->result() (Line: 83)
Drupal\Core\Entity\Query\Sql\Query->execute() (Line: 795)
Drupal\media_acquiadam\Plugin\EntityBrowser\Widget\Acquiadam->prepareEntities(Array, Object) (Line: 769)
Drupal\media_acquiadam\Plugin\EntityBrowser\Widget\Acquiadam->submit(Array, Array, Object) (Line: 238)
Drupal\entity_browser\Form\EntityBrowserForm->submitForm(Array, Object)
call_user_func_array(Array, Array) (Line: 113)
Drupal\Core\Form\FormSubmitter->executeSubmitHandlers(Array, Object) (Line: 51)
Drupal\Core\Form\FormSubmitter->doSubmitForm(Array, Object) (Line: 593)
Drupal\Core\Form\FormBuilder->processForm('entity_browser_image_entity_browser_form', Array, Object) (Line: 144)
Drupal\autosave_form\Form\AutosaveFormBuilder->processForm('entity_browser_image_entity_browser_form', Array, Object) (Line: 321)
Drupal\Core\Form\FormBuilder->buildForm(Object, Object) (Line: 97)
Drupal\autosave_form\Form\AutosaveFormBuilder->buildForm(Object, Object) (Line: 73)
Drupal\Core\Controller\FormController->getContentResult(Object, Object)
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 578)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 124)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}() (Line: 158)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 80)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 42)
Drupal\nsf_governance\RedirectMiddleware->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 717)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

Proposed resolution

Debugging this it seemed the array keys for $asset_ids were causing the issue, and calling array_values on it fixes the issue. Patch is attached.

Remaining tasks

Unsure if this issue is limited to our codebase or usage of the module. If it's relevant, we are using PostgreSQL.

User interface changes

API changes

Data model changes

πŸ› Bug report
Status

Needs review

Version

2.0

Component

Code

Created by

πŸ‡ΊπŸ‡ΈUnited States msielski

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

Production build 0.71.5 2024