When doing a classic upgrade, the scripts fails to get the ldap admin dn value from the smb.conf file if the value is double quoted (eg. ldap admin dn = "cn=manager,dc=mydomainname,dc=local") removing the double quotes solved the issue. Here is the stacktrace : samba-tool domain samba3upgrade --dbdir=/root/samba3/ --use-xattrs=yes --realm=mydomainname.local /root/samba3/smb.conf Reading smb.conf Provisioning ERROR(<class 'samba.provision.ProvisioningError'>): uncaught exception - ProvisioningError: ldapsam passdb backend detected but no LDAP Bind PW found in secrets.tdb for user %s. Please point this tool at the secrets.tdb that was used by the previous installation. File "/usr/local/samba/lib/python2.7/site-packages/samba/netcmd/__init__.py", line 175, in _run return self.run(*args, **kwargs) File "/usr/local/samba/lib/python2.7/site-packages/samba/netcmd/domain.py", line 1318, in run useeadb=eadb, dns_backend=dns_backend, use_ntvfs=use_ntvfs) File "/usr/local/samba/lib/python2.7/site-packages/samba/upgrade.py", line 603, in upgrade_from_samba3 raise ProvisioningError("ldapsam passdb backend detected but no LDAP Bind PW found in secrets.tdb for user %s. Please point this tool at the secr ets.tdb that was used by the previous installation."