[Ubuntu] What to do when syncdaemon says ROOT_MISMATCH?


ROOT_MISMATCH means that the previous synchronization was done using a different account. This may mean that the user got more than one Ubuntu One account and different credentials were entered during reauthorization.
This can be detected by running u1sdtool --status and receiving State: ROOT_MISMATCH
The following options are available:
  • Remove existing authorization and authorize the computer using correct credentials (recommended):
    • Open ubuntuone-preferences
    • Click on the Devices tab, click "Remove" button for your current machine (the one that has Limit bandwith settings and Connect/Restart buttons)
    • Verify that "Ubuntuone token for https://ubuntuone.com" or "Ubuntu One" token is not present in gnome-kering (System / Preferences / Passwords and Encryption Keys or seahorse)
    • For versions before Ubuntu Maverick Meerkat:
      killall ubuntuone-login 
    • Run ubuntuone-preferences and you should be prompted to reauthorize the machine.
  • Shut down syncdaemon, back up Ubuntu One folders, remove metadata information and start syncdaemon again. In this case the files will be merged with those that are in the new account storage:
      # get the list of all Ubuntu One folders:
      u1sdtool --list-folders
      # shut down Ubuntu One syncdaemon:
      u1sdtool --quit
      cp -r ~/Ubuntu\ One/ ~/Ubuntu\ One_backup/
      # copy every ubuntuone folder returned by --list-folders to a safe place
      # remove syncdaemon metadata directories:
      rm -rf ~/.local/share/ubuntuone/syncdaemon
      # start syncdaemon
      u1sdtool --start
      # connect syncdaemon to the server:
      u1sdtool --connect