+ );
+ }
+}
diff --git a/app/internal_packages/onboarding/lib/onboarding-helpers.es6 b/app/internal_packages/onboarding/lib/onboarding-helpers.es6
index 0f4981aaf..3f89fe62a 100644
--- a/app/internal_packages/onboarding/lib/onboarding-helpers.es6
+++ b/app/internal_packages/onboarding/lib/onboarding-helpers.es6
@@ -99,10 +99,6 @@ export function makeGmailOAuthRequest(sessionKey) {
}
export async function buildGmailAccountFromToken(serverTokenResponse) {
- // At this point, the Mailspring server has retrieved the Gmail token,
- // created an account object in the database and tested it. All we
- // need to do is save it locally, since we're confident Gmail will be
- // accessible from the local sync worker.
const { name, emailAddress, refreshToken } = serverTokenResponse;
const account = expandAccountWithCommonSettings(
@@ -118,6 +114,10 @@ export async function buildGmailAccountFromToken(serverTokenResponse) {
account.id = idForAccount(emailAddress, account.settings);
+ // test the account locally to ensure the All Mail folder is enabled
+ // and the refresh token can be exchanged for an account token.
+ await finalizeAndValidateAccount(account);
+
return account;
}
diff --git a/app/internal_packages/onboarding/lib/page-account-settings-gmail.jsx b/app/internal_packages/onboarding/lib/page-account-settings-gmail.jsx
index a4be2e545..4e604dcd7 100644
--- a/app/internal_packages/onboarding/lib/page-account-settings-gmail.jsx
+++ b/app/internal_packages/onboarding/lib/page-account-settings-gmail.jsx
@@ -1,6 +1,5 @@
import React from 'react';
import PropTypes from 'prop-types';
-import { OAuthSignInPage } from 'mailspring-component-kit';
import {
makeGmailOAuthRequest,
@@ -9,6 +8,7 @@ import {
buildGmailAuthURL,
} from './onboarding-helpers';
+import OAuthSignInPage from './oauth-signin-page';
import OnboardingActions from './onboarding-actions';
import AccountProviders from './account-providers';
diff --git a/app/src/global/mailspring-component-kit.es6 b/app/src/global/mailspring-component-kit.es6
index 87db7fd51..4943d828c 100644
--- a/app/src/global/mailspring-component-kit.es6
+++ b/app/src/global/mailspring-component-kit.es6
@@ -95,7 +95,6 @@ lazyLoad('UndoToast', 'undo-toast');
lazyLoad('LazyRenderedList', 'lazy-rendered-list');
lazyLoad('OverlaidComponents', 'overlaid-components/overlaid-components');
lazyLoad('OverlaidComposerExtension', 'overlaid-components/overlaid-composer-extension');
-lazyLoad('OAuthSignInPage', 'oauth-signin-page');
lazyLoadFrom('AttachmentItem', 'attachment-items');
lazyLoadFrom('ImageAttachmentItem', 'attachment-items');
lazyLoad('CodeSnippet', 'code-snippet');
diff --git a/app/src/mailsync-process.es6 b/app/src/mailsync-process.es6
index fec26b627..6082368ec 100644
--- a/app/src/mailsync-process.es6
+++ b/app/src/mailsync-process.es6
@@ -13,7 +13,8 @@ let Utils = null;
export const LocalizedErrorStrings = {
ErrorConnection: 'Connection Error - Unable to connect to the server / port you provided.',
- ErrorInvalidAccount: 'This account is invalid, or does not have an inbox or all folder.',
+ ErrorInvalidAccount:
+ 'This account is invalid or Mailspring could not find the Inbox or All Mail folder. http://support.getmailspring.com/hc/en-us/articles/115001881912',
ErrorTLSNotAvailable: 'TLS Not Available',
ErrorParse: 'Parsing Error',
ErrorCertificate: 'Certificate Error',
diff --git a/mailsync b/mailsync
index 6024cf374..bbf196e10 160000
--- a/mailsync
+++ b/mailsync
@@ -1 +1 @@
-Subproject commit 6024cf3744aca7448e623e1ec3f9820e1fe5a3d9
+Subproject commit bbf196e106cbf858015748b5b04b2ca537253d5f