I've been debugging the issue here, according to the steps (and the logs) which Renato provided me with.
So, a problem arises if the access token has expires and the refresh token (which can be used to request a new access token without UI interactions) is still valid, but the client application has been revoked access from https://myaccount.google.com/ (section "Connected apps and services"). In that case, here's the logs: Feb 13 15:02:15 ubuntu-phablet signonpluginprocess[13128]: oauth2plugin.cpp 111 OAuth2Plugin : Feb 13 15:02:15 ubuntu-phablet signonpluginprocess[13128]: oauth2plugin.cpp 206 respondWithStoredToken : Stored token is expired Feb 13 15:02:15 ubuntu-phablet signonpluginprocess[13128]: oauth2plugin.cpp 586 refreshOAuth2Token : "1/XXXX" Feb 13 15:02:15 ubuntu-phablet signonpluginprocess[13128]: oauth2plugin.cpp 598 sendOAuth2PostRequest : Feb 13 15:02:15 ubuntu-phablet signonpluginprocess[13128]: oauth2plugin.cpp 623 sendOAuth2PostRequest : Query string = QUrl( "?grant_type=refresh_token&refresh_token=1/XXXX&client_id=759250720802-4sii0me9963n9fdqdmi7cepn6ub8luoh.apps.googleusercontent.com&client_secret=juFngKUcuhB7IRQqHtSLavqJ" ) Feb 13 15:02:15 ubuntu-phablet signonpluginprocess[13128]: base-plugin.cpp 112 postRequest : Posting request: QUrl( "https://accounts.google.com/o/oauth2/token" ) Feb 13 15:02:15 ubuntu-phablet signonpluginprocess[13128]: ../../../../src/remotepluginprocess/remotepluginprocess.cpp 496 startTask operation is completed Feb 13 15:02:16 ubuntu-phablet signonpluginprocess[13128]: base-plugin.cpp 152 handleNetworkError : error signal received: 302 Feb 13 15:02:16 ubuntu-phablet signonpluginprocess[13128]: base-plugin.cpp 167 handleNetworkError : Contents: "{#012 "error" : "invalid_grant",#012 "error_description" : "Token has been revoked."#012}" So, this is a but in signon-plugin-oauth2, which should discard the refresh token and try the authentication again if some error happens while using the refresh token. ** Project changed: ubuntu-system-settings-online-accounts => signon- plugin-oauth2 (Ubuntu) ** Changed in: signon-plugin-oauth2 (Ubuntu) Status: New => In Progress ** Changed in: signon-plugin-oauth2 (Ubuntu) Assignee: (unassigned) => Alberto Mardegan (mardy) -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to signon-plugin-oauth2 in Ubuntu. https://bugs.launchpad.net/bugs/1420002 Title: Sync fails with no way to recover after token expires Status in the base for Ubuntu mobile products: In Progress Status in Sync monitor for Ubuntu Touch: In Progress Status in signon-plugin-oauth2 package in Ubuntu: In Progress Status in sync-monitor package in Ubuntu: New Status in sync-monitor package in Ubuntu RTM: New Bug description: I have two accounts on my krillin which I sync to google. Opened calendar and hit 'sync' button. Navigated around a bit in the app, it died (will file separate bug for that) and I restarted it. Tried syncing again. Got a sync fail popup. ubuntu-touch/ubuntu-rtm/14.09-proposed 231. ProblemType: Bug DistroRelease: Ubuntu RTM 14.09 Package: sync-monitor 0.1+15.04.20150127~rtm-0ubuntu1 Uname: Linux 3.4.67 armv7l ApportVersion: 2.14.7-0ubuntu8 Architecture: armhf Date: Mon Feb 9 21:11:51 2015 InstallationDate: Installed on 2015-02-09 (0 days ago) InstallationMedia: Ubuntu Utopic Unicorn (development branch) - armhf (20150209-030204) SourcePackage: sync-monitor UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/canonical-devices-system-image/+bug/1420002/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : [email protected] Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp

