       @_accounts.push((new Account).fromJSON(json))
 
     @_tokens = NylasEnv.config.get(saveTokensKey) || {}
+    @_trigger()
+
+  _trigger: ->
+    for account in @_accounts
+      if not account?.id
+        err = new Error("An invalid account was added to `this._accounts`")
+        NylasEnv.reportError(err)
+        @_accounts = _.compact(@_accounts)
     @trigger()
 
   _save: =>

    @_accounts.splice(existingIdx, 1)
    @_accounts.splice(newIdx, 0, account)
    @_save()
    @trigger()

  addAccountFromJSON: (json) =>
    if not json.email_address or not json.provider

    @_caches = {}
    @_accounts[idx] = account
    NylasEnv.config.set(saveObjectsKey, @_accounts)
    @_trigger()

  _onRemoveAccount: (id) =>
    idx = _.findIndex @_accounts, (a) -> a.id is id
