diff --git a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java index 570d86beae..46c15d015d 100644 --- a/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java +++ b/app/src/main/java/eu/faircode/email/BoundaryCallbackMessages.java @@ -558,9 +558,12 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback msgnums = new ArrayList<>(); for (Response response : responses) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 45ccdee643..f51437cf2e 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -3430,9 +3430,10 @@ class Core { } } else { for (Response response : responses) - if (response.isBYE()) + if (response.isBYE()) { + protocol.disconnect(); return new MessagingException("UID FETCH", new IOException(response.toString())); - else if (response.isNO()) { + } else if (response.isNO()) { Log.e("UID FETCH " + response); throw new CommandFailedException(response); } else if (response.isBAD()) { diff --git a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java index 9d1f93a420..98db560625 100644 --- a/app/src/main/java/eu/faircode/email/ServiceSynchronize.java +++ b/app/src/main/java/eu/faircode/email/ServiceSynchronize.java @@ -1712,8 +1712,11 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences if (responses.length == 0) throw new ProtocolException("No response"); - if (!responses[responses.length - 1].isOK()) + if (!responses[responses.length - 1].isOK()) { + if (responses[responses.length - 1].isBYE()) + protocol.disconnect(); throw new ProtocolException(responses[responses.length - 1]); + } for (int i = 0; i < responses.length - 1; i++) { EntityLog.log(ServiceSynchronize.this, account.name + " " + responses[i]);