Postponed (maintainer needs more info)
Project:
Drupal core
Version:
main
Component:
other
Priority:
Normal
Category:
Task
Assigned:
Unassigned
Issue tags:
Reporter:
Created:
31 Mar 2022 at 13:03 UTC
Updated:
28 Jul 2026 at 14:58 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #3
rajab natshahComment #4
rajab natshahComment #5
larowlanWhat are the steps to reproduce this?
Comment #7
paulmicha commentedHere are the contents of the merge request as a patch file.
Comment #8
Letharion commentedI'm seeing this warning when visiting core/install.php and the site is already installed.
With that said, I'm wondering if it's actually correct that getUniqueStorageIdentifier() can return null under reasonable circumstances?
I'm not sure the correct solution here is to silence the error really with ?? '', as there should probably always be an identifier?
Comment #10
solideogloria commentedRemoving blockquote on deprecated hashing functions, as that has nothing to do with this issue.
Comment #11
larowlanYep, we're going to need a stack trace here, I suspect something is corrupt in your site, perhaps in your config
Comment #12
avpadernoComment #13
jayelless commentedI have just upgraded my Varbase system from 9.0.10 to 9.0.11, which uses Drupal core 9.5.2. That was fine, but on switching Php from 8.0 to 8.1 I get several instance of the error when viewing the status report.
Comment #14
rajab natshahFacing more issue
#3302838: Querying with NULL values results in warning mb_strtolower(): Passing null to parameter is deprecated
When local and translation is enabled.
Find out that the module Smart Trim still uses
Deprecated function:
mb_convert_encoding(): Passing null to parameter #1 ($string) of type array|string is deprecatedDeprecated function:
strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in Drupal\Component\Transliteration\PhpTransliteration->transliterate()Comment #16
borisson_If
getUniqueStorageIdentifieris empty - it looks like something else is seriously broken?Comment #17
rajab natshah#14
#3302838: Querying with NULL values results in warning mb_strtolower(): Passing null to parameter is deprecated
You are right, Joris
Reading again the comments
It could be happening with entity configs or configs, which had no UUID or entity data.
Then a UUID was added to the logic or config.
Or the other way, It had a UUID and that UUID was removed from default configs or config schema or from the logic.
As Lee said stack trace
Tested with PHP 8.1 ..
In PHP 8.2 many contrib modules are still hitting errors/warnings with
mb_strtolowerand other mb_str .... functionsComment #18
solideogloria commentedI saw this error on a site that already has Drupal 10.2 installed. An anonymous user visited
/core/install.php?profile=defaultI can't reproduce it, though, even though I see that's what the request was in the logs.
Comment #19
rajab natshahComment #20
quietone commentedIs this issue still a problem? There have been no reports of this for two years, and the last one was not reproducible.
If we don't receive additional information to help with the issue, it may be closed after three months.
Thanks!
Comment #21
quietone commentedAlso adding that there aren't steps to reproduce in the issue summary, which was asked for in #5. And the comment by @Letharion (which I agree with) needs to be addressed.
Comment #22
avpadernoUsing
substr(hash('sha256', ''), 0, 10)when$storage_definition->getUniqueStorageIdentifier()returnsNULLmeans the generated identifier is no longer a unique storage identifier. (It is essentially the hardcoded'e3b0c44298'string, which at that point could be used when$storage_definition->getUniqueStorageIdentifier()returnsNULL.)substr(hash('sha256', $storage_definition->getUniqueStorageIdentifier()), 0, 10)returns a unique storage identifier because$storage_definition->getUniqueStorageIdentifier()returns a unique storage identifier. (Truncating the hash to 10 bytes should be sufficient to keep collisions lower than one over a million.)Comment #23
rajab natshahThanks, for following up on this.
No longer in use.
Drupal Core, and custom and contrib can manage without
I removed the local patch for this MR from all our products.
Comment #24
driskell commentedI was following this and just checked my work items.
For us, the issue was caused by a field storage we had imported from YML somewhere which didn't have a UUID (I think Configuration Synchronisation module). But as the field storage already existed, no UUID was generated during the import (it only happens on new). So the UUID was effectively stripped. Then later on this occurred I think when trying to delete a field.
Fix was to restore a UUID on the field storage configuration object.
In my case, there was no Drupal core issue; it was a configuration corruption caused by our use in Configuration Synchronisation at the time.