Same issue with NC14 and also with NC15 after upgrade to ubuntu 19.04 with php 7.2.19.
I reviewed carefully locales and they are fine.
As www-data user:
$ locale
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=en_US.UTF-8
Locales lang manually generated:
$ locale-gen en_US.UTF-8
Was a testing machine, so I load every locale to be sure and “locale -a” show the full list.
locale -a | grep en_US.utf8
Also try with dpkg-reconfigure locales, forcing php.ini with intl, setting nextcloud default/force_locale vars, etc. without any luck.
Locale set globally to “en_US.utf8” with same results:
$ localectl set-locale LANG=en_US.utf8
(Even editing “/etc/environment” manually)
Full packages purged and reinstalled and still the same:
$ sudo apt-get install --reinstall language-pack-en
After every change I made multiple apache reloads and reboots as well as full server’s and nothing changes.
Then I check the code and looks like the lock was generated by “isSetLocaleWorking()” function returning false:
I checked setlocale() php function with my own php script and was working fine.
So then I forced the function to return “true” and the message disappear and I could login and work without any trouble.
I know it’s far from be a real solution (we still don’t know why the function returns false and I’m worried about collateral effects in filenames, metadata and so on) but probably it will help developers to point us in the right direction.
Thanks a lot for your time,
m.
PD: Just in case somebody else have trouble dealing with locales, here you have a nice resource (Debian flavour): https://www.rosehosting.com/blog/configure-system-locale-on-debian-9/