V20 U6 to U7 upgrade failing 'No password has been provided but the backend requires one'

jameshs

Premier Customer
Joined
Jul 21, 2021
Messages
23
Reaction score
13
Good Day,
We have a fully working V20 U6 installation and on the weekend it attempted an automatic upgrade and failed with all services showing as disabled and stopped.

To fix it I restored a full system backup and made a 3CX backup before I tried a manual upgrade using sudo apt upgrade.

The upgrade process then gave this error:

Code:
Setting up 3cxpbx (20.0.7.1060) ...
ALTER SYSTEM
fail: Updater2Db.DbUpdate[0]
      Error DB Update: No password has been provided but the backend requires one (in MD5)
System.Exception: DB update failed
   at UpdaterNx.Updater.Update()
   at UpdaterNx.Program.Main(String[] args)


I then tried making a running sudo 3CXWizard --cleanup and importing the 3CX backup.
This seemed to work initially as phones came back up, but I could not access admin interface.

Reviewing logs and I found lots more password errors
3cxSystemService.log
Code:
2025/11/03 16:13:15.874|0001|Erro| Exception
Npgsql.NpgsqlException (0x80004005): No password has been provided but the backend requires one (in SASL/SCRAM-SHA-256)
   at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|214_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlDataSource.OpenConnectionAsync(CancellationToken cancellationToken)
   at Npgsql.NpgsqlDataSource.OpenConnectionAsync(CancellationToken cancellationToken)
   at CallHistoryReceiver.Npgsql.DBSaver.BeginTransaction()
   at CallHistoryReceiver.CallFlowParser.PostProcessCDR()
   at CallHistoryReceiver.CallFlowParser.PostProcessCDR()
2025/11/03 16:13:46.387|0021|Erro| Exception
Npgsql.NpgsqlException (0x80004005): No password has been provided but the backend requires one (in SASL/SCRAM-SHA-256)
   at ExtensionUtils.NpgsqlDbOperation.CreateConnectionAsync(CancellationToken cancellationToken)
   at ExtensionUtils.NpgsqlDbOperation.ExecuteReaderAsync(String sqlQuery, NpgsqlParameter[] parameters, Func`2 readAction, CancellationToken cancellationToken)
   at _3cxSystemService.Webmeeting.WmReportsSender.SendReports()
2025/11/03 16:13:46.388|0009|Erro| [_3cxSystemService.Recordings.RecordingProcessor] SPEECH RecordingProcessor Npgsql.NpgsqlException (0x80004005): No password has been provided but the backend requires one (in SASL/SCRAM-SHA-256)
   at ExtensionUtils.NpgsqlDbOperation.CreateConnectionAsync(CancellationToken cancellationToken)
   at ExtensionUtils.NpgsqlDbOperation.ExecuteReaderAsync(String sqlQuery, NpgsqlParameter[] parameters, Func`2 readAction, CancellationToken cancellationToken)
   at _3cxSystemService.Recordings.RecordingProcessor.FetchRecordings()
   at _3cxSystemService.Recordings.RecordingProcessor.ProcessRecordings()
   at _3cxSystemService.Recordings.RecordingProcessor.Processor()
2025/11/03 16:13:46.393|0009|Erro| [Microsoft.Extensions.Hosting.Internal.Host] Hosting failed to start
Npgsql.NpgsqlException (0x80004005): No password has been provided but the backend requires one (in SASL/SCRAM-SHA-256)
   at ExtensionUtils.NpgsqlDbOperation.CreateConnectionAsync(CancellationToken cancellationToken)
   at ExtensionUtils.NpgsqlDbOperation.ExecuteScalarAsync(String sqlQuery, NpgsqlParameter[] parameters, NpgsqlConnection conn)
   at _3cxSystemService.Recordings.RecordingEmailService.UpdateRecordingId()
   at _3cxSystemService.Recordings.RecordingEmailService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.<StartAsync>b__14_1(IHostedService service, CancellationToken token)
   at Microsoft.Extensions.Hosting.Internal.Host.ForeachService[T](IEnumerable`1 services, CancellationToken token, Boolean concurrent, Boolean abortOnFirstException, List`1 exceptions, Func`3 operation)

3cxManagementConsole.log
Code:
2025/11/03 16:15:59.275|0024|Erro| [Microsoft.EntityFrameworkCore.Database.Connection] An error occurred using the connection to database 'database_single' on server '/var/run/postgresql/.s.PGSQL.5432'.
2025/11/03 16:15:59.278|0024|Erro| [Microsoft.EntityFrameworkCore.Query] An exception occurred while iterating over the results of a query for context type '_3CX.Authorization.JwtKeyStorage.JwtSigningKeysContext'.
Npgsql.NpgsqlException (0x80004005): No password has been provided but the backend requires one (in SASL/SCRAM-SHA-256)
   at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|214_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
Npgsql.NpgsqlException (0x80004005): No password has been provided but the backend requires one (in SASL/SCRAM-SHA-256)
   at Npgsql.Internal.NpgsqlConnector.AuthenticateSASL(List`1 mechanisms, String username, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.Authenticate(String username, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.<Open>g__OpenCore|214_1(NpgsqlConnector conn, SslMode sslMode, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.Internal.NpgsqlConnector.Open(NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.OpenNewConnector(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.PoolingDataSource.<Get>g__RentAsync|33_0(NpgsqlConnection conn, NpgsqlTimeout timeout, Boolean async, CancellationToken cancellationToken)
   at Npgsql.NpgsqlConnection.<Open>g__OpenAsync|42_0(Boolean async, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Npgsql.EntityFrameworkCore.PostgreSQL.Storage.Internal.NpgsqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()

I've restored the U6 OS backup again to get the system working but exported all the logs I could before the restore.

Any suggestions on what password it is looking for and where? I assume I need to fix something on the U6 install before attempting the upgrade again.
Thanks.
 
  • Like
Reactions: gpaillot
Hello,

Can you please confirm quickly - your system is currently running u6, yes?

Is the server continues updates from the initial 3CX install, or was it upgraded at any point?
 
  • Like
Reactions: jameshs
Hello,

Can you please confirm quickly - your system is currently running u6, yes?

Is the server continues updates from the initial 3CX install, or was it upgraded at any point?
Hi Kyriacos,
Yes system is currently running u6 and was upgraded from V18.

Thanks,
James
 
You will need to raise a ticket with support, as access to the system or a lot more info will probably be required to drill down on the problem source.
 
You will need to raise a ticket with support, as access to the system or a lot more info will probably be required to drill down on the problem source.
Thanks Kyriacos. As I was unsure if there might be other problems left over from the V18 to V20 upgrade I ended up just creating a new 3CX V20u7 VM. Then restored the backup from the V20u6 system and it seems to be working now.
 

Forum statistics

Threads
111,954
Messages
589,921
Members
164,852
Latest member
priya