In 10.4, SET_PASSWORD = PASSWORD(...) works for users identified via ed25519. This is noted in documentation.
To identify such users, PASSWORD() produces a hashed string of a format different than usual, e.g. for 'secret' it will be ZIgUREUg5PVgQ6LskhXmO+eZLS0nC8be6HPjYWR4YJY and not *14E65567ABDB5135D0CFD9A70B3032C179A49EE7.
However, documentation for the PASSWORD function doesn't mention it, it still claims that the function always produces a 41-char-long line starting with *.
So, back to 10.4-specific part of documentation for ed25519, it says that the password can now be set as
It is technically correct, but without mentioning the internal magic, it presumes that one can split the statement in two – first, do
and then feed its result to SET PASSWORD as
which is not true, it causes the error
So, I suggest th extend the description of PASSWORD() function and add a note to the description of ed25519 plugin about the special behavior of the function.