Closed (fixed)
Project:
Firma
Version:
2.0.0
Component:
Code
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
4 May 2026 at 15:53 UTC
Updated:
20 May 2026 at 22:00 UTC
Jump to comment: Most recent
I installed Firma on a fresh version of 11.3. It looks great and does what I want. Thx.
But when I try to upload images to change the slide images on the front page, nothing sticks. There's no open error, but I've found the errors on the logs.
Here's the error:
Message: Drupal\Component\Plugin\Exception\PluginNotFoundException: The "file_validate_extensions" plugin does not exist.
Valid plugin IDs for Drupal\Core\Validation\ConstraintManager are: Callback, Blank, NotBlank, Email, Choice, File, Image, PositiveOrZero, IdenticalTo, BlockContentEntityChanged, CKEditor5ToolbarItemConditionsMet, SourceEditingPreventSelfXssConstraint, UniqueLabelInList, CKEditor5ToolbarItemDependencyConstraint, CKEditor5MediaAndFilterSettingsInSync, CKEditor5FundamentalCompatibility, CKEditor5Element, CKEditor5ToolbarItem, StyleSensibleElement, CKEditor5EnabledConfigurablePlugins, SourceEditingRedundantTags, CommentName, DateTimeFormat, FileNameLength, FileIsImage, FileExtension, FileValidation, FileSizeLimit, FileEncoding, FileUriUnique, FileExtensionSecure, FileImageDimensions, LinkType, LinkAccess, LinkExternalProtocols, LinkNotExistingInternal, MenuTreeHierarchy, MenuSettings, PathAlias, Oauth2RedirectUri, Oauth2ScopeReference, TaxonomyHierarchy, UserMailRequired, UserName, ProtectedUserField, RoleExists, UserMailUnique, UserCancelMethod, UserNameUnique, ExtensionAvailable, ExtensionExists, ExtensionName, MenuLinkDepth, ValidSequenceKeys, ValidKeys, Optional, NotNull, Uuid, AllowedValues, Sequentially, EntityBundleExists, PrimitiveType, ComplexData, Null, Regex, Required, Length, UniqueField, UriHost, CountryCode, ClassResolver, Count, AtLeastOneOf, Serialized, MappingCollection, Range, FullyValidatable, ValidPath, UniquePathAlias, PluginExists, LangcodeRequiredIfTranslatableValues, RequiredConfigDependencies, ConfigExists, EntityHasField, EntityType, EntityUntranslatableFields, ReferenceAccess, Bundle, EntityChanged, ValidReference, ImmutableProperties in Drupal\Core\Plugin\DefaultPluginManager->doGetDefinition() (line 53 of /var/www/pastrecast/web/core/lib/Drupal/Component/Plugin/Discovery/DiscoveryTrait.php).SeverityError
I discussed the problem with Gemini and it gave me this answer:
That error message is the "smoking gun." It tells us exactly why your uploads are failing: your version of Drupal (likely Drupal 10.2 or 11) has removed the old file_validate_extensions plugin, but the Firma theme is still trying to call it by that old name.
In recent updates, Drupal renamed and refactored its validation system. The theme is asking for file_validate_extensions, but Drupal now only recognizes FileExtension. Because of this mismatch, the "Save" action crashes silently in the background, leaving the old slides in place.
Since the theme is likely out of sync with your Drupal core version, you can try these two paths:
1. The Quick Workaround (Server-Side)
If you have access to your server files (which I suspect you do given your previous work with Ubuntu and Nginx), you can manually swap the images to bypass the broken form.
Look at the file path where the "old" slides are stored (usually /sites/default/files/ or a subfolder defined in the theme).
Upload your new images to that folder using SFTP or a file manager.
Give your new images the exact same filenames as the old ones (e.g., slide1.jpg).
Clear the Drupal cache. The theme will now load your new files because it's still looking for those specific filenames.
2. The Technical Fix (Editing the Theme Code)
If you want to fix the actual bug in the Firma theme so the settings page works again, you need to update the hook that defines that upload field.
Navigate to your theme folder: /themes/contrib/firma/.
Search for the file theme-settings.php (or wherever the slideshow form is defined).
Search for the string: 'file_validate_extensions'.
Replace it with: 'FileExtension'.
Save the file and Clear all caches.
Why this is happening now
Drupal has been migrating toward the Symfony Validation system. In older versions, validation was handled by simple function strings like file_validate_extensions. In the newest versions, these were converted into proper Plugins. When Firma tries to use the old "string" name, Drupal throws that PluginNotFoundException, which kills the AJAX process during your upload.
Comments
Comment #2
seasernet commentedFixed in version 2.0.1.
The issue was caused by the removal of the file_validate_extensions function in Drupal 11, which has been replaced by the FileExtension validator plugin. I have updated theme-settings.php to use the new plugin syntax.
Please update to the latest version of the theme.
Comment #3
seasernet commentedSetting status to Fixed.
Comment #5
bogdog400 commentedThx!