Undefined array key "description_field_required" in \Drupal\file\Plugin\Field\FieldWidget\FileWidget::formElement

Created on 10 August 2023, almost 2 years ago

Problem/Motivation

In some scenarios, when editing an entity with a file field, the following warning appears:
Warning: Undefined array key "description_field_required" in /var/www/app/docroot/core/modules/file/src/Plugin/Field/FieldWidget/FileWidget.php on line 249

Steps to reproduce

Not sure - we encountered this on taxonomy terms with file fields, which had been created before a Drupal core upgrade.

After saving the field settings, the warning did not appear.

Proposed resolution

tbc

Remaining tasks

User interface changes

none

API changes

Data model changes

Release notes snippet

🐛 Bug report
Status

Active

Version

10.1

Component
File module 

Last updated about 2 hours ago

Created by

🇬🇧United Kingdom malcomio

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

Merge Requests

Comments & Activities

  • Issue created by @malcomio
  • last update almost 2 years ago
    29,459 pass
  • @malcomio opened merge request.
  • Status changed to Needs review almost 2 years ago
  • 🇬🇧United Kingdom malcomio

    The warning can be prevented with the change in https://git.drupalcode.org/project/drupal/-/merge_requests/4574, but I don't know if there are any other effects of this field not being set.

    I suspect that the proper fix may be in update hooks somewhere.

  • Status changed to Needs work almost 2 years ago
  • 🇺🇸United States smustgrave

    Thank you for reporting

    So typically with these kind of issues we need to determine why this key isn't set. Could be masking a large problem.

  • 🇬🇧United Kingdom stefank

    Hi all,

    Attaching a patch for D10 as well, in case anyone also needs it. Should apply cleanly using composer.

  • First commit to issue fork.
  • Merge request !10674Resolve #3380377 "Undefined array key 11.x" → (Open) created by oily
  • 🇬🇧United Kingdom oily Greater London

    oily changed the visibility of the branch 3380377-undefined-array-key to hidden.

  • 🇬🇧United Kingdom oily Greater London

    Created new 11.x branch, hid old branch.

  • Pipeline finished with Success
    5 months ago
    Total: 314s
    #378203
  • Pipeline finished with Success
    5 months ago
    Total: 824s
    #378218
  • 🇬🇧United Kingdom oily Greater London

    I grepped 'description_field_required' in core and it does not exist. However the code in the related issue #2320877 adds a key named 'description_field_required'.

    @malcomio, Is it possible that whenever you encountered the warning message in the issue description that the site contained code that added that key. e.g. in a contributed module, composer patch or custom module?

    Logically the only other way (I can think of) that that key could appear purely as a result of core code would be if it is dynamically generated eg by concatenating a string with a string from a variable. Then grepping 'description_field_required' would return nothing.

    If the key is created outiside core eg in a contrib module then this is not a core issue and it can safely be closed.

  • Status changed to Postponed: needs info 5 days ago
  • 🇮🇳India mohit_aghera Rajkot

    I was trying to reproduce the issue and had no luck.

    I tried following instances.
    - In core check if there are any concatenated fields like "description_field_required"
    Initially I did a quick search to see if we have dynamic variable. i.e. grep -r "_required'" core/
    This didn't yielded any results.

    Later I did same search with prefix i.e. "description_".
    This didn't returned anything either.

    My only guess is that if the patch from https://www.drupal.org/project/drupal/issues/2320877 Add a setting to make description a required field for file items Needs work issue is applied to core.
    In-case it is not applied cleanly then $field_settings might not have key "description_field_required"
    Reason is that, the error appears on line 249 which is close to the change in the above PR.

    Another reason can be that above patch is used and update hook isn't called.
    There is a "file_post_update_description_required()" which sets the values.
    To confirm that there is a dedicated update test as well https://git.drupalcode.org/project/drupal/-/merge_requests/5876/diffs#di... which checks that "description_field_required" doesn't exist before update hook and it exists after update hook.

    Apart from that I am in favour of postponing the issue unless we have clear steps to reproduce.

    Please reopen again if you feel it is happening again with majority of users with the vanilla core.

Production build 0.71.5 2024