diff --git a/src/config.rs b/src/config.rs index 143e8f314..0efa06869 100644 --- a/src/config.rs +++ b/src/config.rs @@ -351,13 +351,6 @@ impl Context { pub(crate) async fn set_primary_self_addr(&self, primary_new: &str) -> Result<()> { let primary_new = addr_normalize(primary_new).to_lowercase(); - if self.get_primary_self_addr().await.ok().as_deref() != Some(&primary_new) { - // Make sure that all server UIDs will be resynced - self.sql - .execute("DELETE FROM imap_sync;", paramsv![]) - .await?; - } - // add old primary address (if exists) to secondary addresses let mut secondary_addrs = self.get_all_self_addrs().await?; diff --git a/src/configure.rs b/src/configure.rs index 886bb09ef..cdb41c796 100644 --- a/src/configure.rs +++ b/src/configure.rs @@ -453,6 +453,12 @@ async fn configure(ctx: &Context, param: &mut LoginParam) -> Result<()> { drop(imap); progress!(ctx, 910); + + if ctx.get_primary_self_addr().await.ok().as_deref() != Some(¶m.addr) { + // Switched account, all server UIDs we know are invalid + job::schedule_resync(ctx).await?; + } + // the trailing underscore is correct param.save_as_configured_params(ctx).await?; ctx.set_config(Config::ConfiguredTimestamp, Some(&time().to_string()))