diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java index b526b9300..55ad9aed8 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java @@ -573,8 +573,15 @@ public class AccountController { @ChangesDeviceEnabledState public void setApnRegistrationId(@Auth DisabledPermittedAuthenticatedAccount disabledPermittedAuth, @NotNull @Valid ApnRegistrationId registrationId) { - Account account = disabledPermittedAuth.getAccount(); - Device device = disabledPermittedAuth.getAuthenticatedDevice(); + + final Account account = disabledPermittedAuth.getAccount(); + final Device device = disabledPermittedAuth.getAuthenticatedDevice(); + + if (Objects.equals(device.getApnId(), registrationId.apnRegistrationId()) && + Objects.equals(device.getVoipApnId(), registrationId.voipRegistrationId())) { + + return; + } accounts.updateDevice(account, device.getId(), d -> { d.setApnId(registrationId.apnRegistrationId());