title: OAuth2.0 token strange behaviour (Invalid Credentials 401)
body: <p>Usually, Google OAuth2.0 mechanism is working great. </p>
  
  <ol>
  <li>The user confirms permission to access Google account with selected scopes.</li>
  <li>The refresh token is retrieved and saved to long time storage.</li>
  <li>Each time needed (if the access token expired) access token is retrieved and used to access APIs. </li>
  </ol>
  
  <p>But sometimes (thus far only two times for more than 6 months) I've experienced strange behaviour:</p>
  
  <p>Requests to Google APIs return Invalid Credentials (401) error.
  Refreshing the access token (using the stored refresh token) does not help.</p>
  
  <p>Here is some structured output I've got when testing this issue:</p>
  
  <pre>
      + ------------------------------------------------------------------------- + 
      | 1.TRYING TO REFRESH THE TOKEN.                                            |
      | 2.DONE REFRESHING THE TOKEN.                                              |
      + ------------------------------------------------------------------------- + 
      |    access:           **************************************************** | 
      |   refresh:                  ********************************************* | 
      |   expires:                                                           3600 | 
      |   created:                                            2013-07-23 13:12:36 | 
      + ------------------------------------------------------------------------- + 
  </pre>
  
  <p>I've also tried to verify the "fresh" access token by sending requests to
   <a href="https://www.googleapis.com/oauth2/v1/tokeninfo">https://www.googleapis.com/oauth2/v1/tokeninfo</a></p>
  
  <pre>
      + ------------------------------------------------------------------------- + 
      | 1. TRYING TO CHECK THE TOKEN .                                            |
      | 2. DONE CHECKING THE TOKEN THE TOKEN.                                     |
      + ------------------------------------------------------------------------- + 
      |       issued_to:                  ************.apps.googleusercontent.com |
      |        audience:                  ************.apps.googleusercontent.com |
      |         user_id:                                             ************ |
      |      expires_in:                                                     3600 |
      |           email:                                     **********@gmail.com |
      |  verified_email:                                                        1 |
      |     access_type:                                                  offline |
      |         scopes::                                                          |
      + ------------------------------------------------------------------------- + 
      | https://www.googleapis.com/auth/userinfo.email                            |
      | https://www.googleapis.com/auth/userinfo.profile                          |
      | https://www.googleapis.com/auth/plus.me                                   |
      | https://www.googleapis.com/auth/drive                                     |
      + ------------------------------------------------------------------------- + 
  </pre>
  
  <p>But when I try to access drive feed the response is:</p>
  
  <pre>
      Error calling GET https://www.googleapis.com/drive/v2/files (401) Invalid Credentials
  
      domain:         global
      reason:         authError
      message:        Invalid Credentials
      locationType:   header
      location:       Authorization
  </pre>
  
  <p>We also experienced the same issue with calendars.
  So:</p>
  
  <ol>
  <li>Token was valid before (everything worked).</li>
  <li>Refreshing token still works.</li>
  <li>Requesting a feed responds with "Invalid Credentials" error.</li>
  <li>All the other tokens are still working great, meaning that the code is valid.</li>
  </ol>
  
  <p>Normally when the token is revoked "invalid_grant" error is returned when trying to refresh the token.</p>
  
  <p><strong>Questions</strong> </p>
  
  <ol>
  <li>What can be the reason for this behaviour? If the refresh token was revoked or got invalid in some other way, should the request for new access token produce error?</li>
  <li>Is there a way to validate the refresh token?</li>
  </ol>