[OP-123] T#10917 handle invalid ServerId in incoming requests Created: 29/Oct/14  Updated: 19/Jan/15  Resolved: 09/Dec/14

Status: Closed
Project: Opush
Component/s: None
Affects Version/s: 3.0.2
Fix Version/s: 3.0.4

Type: Bug Priority: Normal
Reporter: Matthieu EXT_BAECHLER Assignee: Matthieu EXT_BAECHLER
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Cloners
is cloned by OP-138 CLONE 3.1 - T#10917 handle invalid Se... Closed
Rank: 6520

 Description   

Sometimes, incoming Sync requests come with some bad ServerId like :

  • 0
  • an arbitrary string
  • a ServerId that doesn't belong to the Sync CollectionId

We should ignore entries if needed or return an appropriate answer.



 Comments   
Comment by Matthieu EXT_BAECHLER [ 24/Nov/14 ]

It changes details of Sync command handling.
It means that it can break Sync on some devices : we must test synchronization with various phones with addition/modification/deletion.

Comment by Thomas HILAIRE [ 01/Dec/14 ]

Reopened no one command run successfully with an ipad :

3:20:30.510 [ERROR] {o.o.p.h.SyncHandler$$EnhancerByGuice$$1fddff6b} [t337/cSync/r93/admin@c.lyon.lan] The type of the collection found:{EMAIL} is not the same than received in DataClass:{null}
org.obm.push.exception.activesync.ServerErrorException: The type of the collection found:{EMAIL} is not the same than received in DataClass:{null}
        at org.obm.push.protocol.data.SyncAnalyser.checkCollectionType(SyncAnalyser.java:180) ~[push-core-3.0.4-SNAPSHOT.jar:na]
        at org.obm.push.protocol.data.SyncAnalyser.getCollection(SyncAnalyser.java:117) ~[push-core-3.0.4-SNAPSHOT.jar:na]
        at org.obm.push.protocol.data.SyncAnalyser.analyseSync(SyncAnalyser.java:94) ~[push-core-3.0.4-SNAPSHOT.jar:na]
        at org.obm.push.handler.SyncHandler.analyzeRequest(SyncHandler.java:220) ~[push-core-3.0.4-SNAPSHOT.jar:na]
        at org.obm.push.handler.SyncHandler.process(SyncHandler.java:163) ~[push-core-3.0.4-SNAPSHOT.jar:na]
Comment by Jenkins Continuous Integration Server [ 10/Dec/14 ]

SUCCESS: Integrated in opush-master-3.0 #16
OP-123 refactor Sync client API to use a builder pattern (matthieu.baechler: c8a2fcf9bddf4bf67e0045ca8b3d1897efa00ad2)

  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/SyncWithCommand.java
  • client/src/main/java/org/obm/sync/push/client/OPClient.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/SyncWithDataCommand.java
    OP-123 remove code duplication (matthieu.baechler: da86558c6511e9bbef57a7b5f0ee8f16b992dd15)
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
    OP-123 merge SyncWithCommand into Sync object (matthieu.baechler: d6fbcc0a7658dbaaa258ba9633e9884dcb35cd5d)
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • client/src/main/java/org/obm/sync/push/client/commands/SyncWithCommand.java
  • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
    OP-123 convert another OPClient.sync invocation into a Sync.Builder one (matthieu.baechler: 636bb930cb4ba26d003a70e778af5ff1ba03d128)
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • client/src/main/java/org/obm/sync/push/client/OPClient.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
    OP-123 remove use of xml template to have a more flexible Sync command (matthieu.baechler: 2d0d0bdcf6218854a4307b262be8c5076f59f668)
  • client/src/main/resources/data/SyncRequest.xml
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
    OP-123 make use of opush protocol object SyncCollection (matthieu.baechler: d8dbf83d44d292d7f574c27bf6a23af2397640e7)
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
    OP-123 make use of opush protocol object SyncCollection (step two) (matthieu.baechler: cf9b35e211de625675cd51abdf89b94e8bd2dd26)
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
    OP-123 remove SyncCollectionCommandDto (matthieu.baechler: 0e3f4e5bfd2fd729518f45871c772e79652df6fb)
  • protocol/src/main/java/org/obm/push/protocol/data/ContactEncoder.java
  • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
  • client/src/main/resources/data/EmailSyncRequest.xml
  • protocol/src/test/java/org/obm/push/BeansTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
  • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
  • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
  • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
  • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • client/src/main/resources/data/EmailSyncRequestWithWait.xml
  • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
  • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
  • client/src/main/java/org/obm/sync/push/client/commands/EmailSyncCommand.java
  • protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java
  • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollectionCommandDto.java
  • protocol/src/main/java/org/obm/push/protocol/data/ContactDecoder.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
  • client/src/main/resources/data/SyncWithCommandRequest.xml
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • client/src/main/resources/data/EmailDeleteSyncRequest.xml
  • client/src/main/java/org/obm/sync/push/client/commands/EmailSyncNoOptionsCommand.java
  • client/src/main/java/org/obm/sync/push/client/commands/EmailDeleteSyncRequest.java
  • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
    OP-123 finally make Sync multi command and drop template based sync (matthieu.baechler: 410cc6cfe078f5d4ccc2005784728877391dbea4)
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
  • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
  • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
    OP-123 make various integrity checks on commands ServerId (matthieu.baechler: df3ff9b741ff7aa42c8ff503accd68db79fdaec2)
  • push-bean/src/main/java/org/obm/push/bean/ServerId.java
  • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
    OP-123 make empty string check on commands ServerId (matthieu.baechler: e8e0b45dd8eb301ec582930d750125a95a521675)
  • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
  • push-bean/src/main/java/org/obm/push/bean/change/SyncCommand.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
    OP-123 remove inheritance with SyncCollectionCommands, use delegation (matthieu.baechler: c9ca7f5d7d76ec52559ff3c8e4f9f57273b593e3)
  • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
  • push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsIndexTest.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
  • push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsTest.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponsesResponse.java
  • push-bean/src/test/java/org/obm/push/bean/BeansTest.java
    OP-123 remove AbstractSyncCollection (matthieu.baechler: 61aa17d1da2064f5f3cde20a86a5edb69bee0388)
  • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AbstractSyncCollectionMixIn.java
  • push-core/src/main/java/org/obm/push/SummaryLoggerService.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
  • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponse.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java
  • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
  • push-bean/src/test/java/org/obm/push/bean/AbstractSyncCollectionTest.java
  • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AnalysedSyncCollectionMixIn.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
  • protocol/src/main/java/org/obm/push/protocol/PingProtocol.java
  • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
  • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java
  • protocol/src/test/java/org/obm/push/protocol/GetItemEstimateProtocolTest.java
  • push-bean/src/main/java/org/obm/push/bean/PIMDataType.java
  • push-core/src/main/java/org/obm/push/handler/PingHandler.java
  • push-bean/src/main/java/org/obm/push/bean/AbstractSyncCollection.java
  • protocol/src/main/java/org/obm/push/protocol/GetItemEstimateProtocol.java
  • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
    OP-123 AnalysedSyncCollection contains a SyncCollectionCommandsRequest instead of a ...Response (matthieu.baechler: e709cda2843032b6f5aca3552f5f5c0d00f1c477)
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
  • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
  • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
  • push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java
  • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
  • push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java
  • push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java
  • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
  • push-core/src/main/java/org/obm/push/handler/SyncHandler.java
    OP-123 duplicate SyncCollectionCommand into SyncCollectionCommandRequest and SyncCollectionCommandResponse (matthieu.baechler: 04ea90eace70a120876f33a69531a90b69ad572e)
  • push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java
  • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
  • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandRequest.java
  • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
  • push-bean/src/test/java/org/obm/push/bean/SyncCollectionCommandsIndexTest.java
  • push-bean/src/test/java/org/obm/push/bean/BeansTest.java
  • push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java
  • push-core/src/main/java/org/obm/push/handler/ItemOperationsHandler.java
  • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
  • push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsResponse.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/TypedCommandsMixIn.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsIndex.java
  • push-bean/src/test/java/org/obm/push/bean/TypedCommandsIndexTest.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandResponse.java
  • push-core/src/main/java/org/obm/push/handler/SyncHandler.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
  • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
  • push-core/src/main/java/org/obm/push/state/StateMachine.java
  • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
  • push-bean/src/main/java/org/obm/push/bean/TypedCommandsIndex.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponsesResponse.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommand.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionResponse.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandResponseMixIn.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsResponseMixIn.java
  • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandMixIn.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandRequestMixIn.java
  • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
  • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceCompatibilityTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsMixIn.java
  • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
  • push-bean/src/main/java/org/obm/push/bean/TypedCommand.java
  • push-core/src/test/java/org/obm/push/state/StateMachineTest.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommands.java
  • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
    OP-123 remove SyncCollectionCommandsRequest object (matthieu.baechler: 00bd171ac820fbc3055f78327baf499192a88ae0)
  • push-core/src/test/java/org/obm/push/SummaryLoggerServiceTest.java
  • push-bean/src/test/java/org/obm/push/bean/AnalysedSyncCollectionTest.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/SyncCollectionCommandsRequestMixIn.java
  • push-core/src/test/java/org/obm/push/handler/SyncHandlerTest.java
  • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
  • push-core/src/main/java/org/obm/push/SummaryLoggerService.java
  • push-bean/src/main/java/org/obm/push/bean/TypedCommandsIndex.java
  • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
  • push-bean/src/test/java/org/obm/push/bean/BeansTest.java
  • push-core/src/test/java/org/obm/push/protocol/data/SyncAnalyserTest.java
  • push-bean/src/main/java/org/obm/push/bean/AnalysedSyncCollection.java
  • push-core/src/main/java/org/obm/push/handler/SyncHandler.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandsRequest.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/JSONService.java
    OP-123 add EncodedApplicationData to postpone data decoding after collection type resolution (matthieu.baechler: 065c547141645d947c1c6ee3e562922ca1ce9486)
  • push-core/src/main/java/org/obm/push/protocol/data/SyncAnalyser.java
  • protocol/src/main/java/org/obm/push/protocol/SyncProtocol.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerTest.java
  • protocol/src/main/java/org/obm/push/protocol/data/SyncEncoder.java
  • push-bean/src/main/java/org/obm/push/bean/EncodedApplicationData.java
  • protocol/src/test/java/org/obm/push/protocol/SyncProtocolTest.java
  • protocol/src/main/java/org/obm/push/protocol/bean/SyncRequest.java
  • protocol/src/main/java/org/obm/push/protocol/AsymetricActiveSyncProtocol.java
  • push-bean/src/main/java/org/obm/push/bean/EncodedSyncCollectionCommandRequest.java
  • protocol/src/test/java/org/obm/push/protocol/data/SyncDecoderTest.java
  • protocol/src/test/java/org/obm/push/protocol/bean/SyncCollectionTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnContactsTest.java
  • protocol/src/main/java/org/obm/push/protocol/data/SyncDecoder.java
  • client/src/main/java/org/obm/sync/push/client/commands/Sync.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerWithBackendTest.java
  • protocol/src/main/java/org/obm/push/protocol/data/ContactEncoder.java
  • push-dao-cassandra/src/main/java/org/obm/push/json/mixin/AnalysedSyncCollectionMixIn.java
  • integration-testing/opush/src/test/java/org/obm/opush/MailBackendGetChangedTest.java
  • protocol/src/main/java/org/obm/push/protocol/bean/ClientSyncRequest.java
  • protocol/src/main/java/org/obm/push/protocol/bean/SyncCollection.java
  • push-dao-cassandra/src/test/java/org/obm/push/json/JSONServiceTest.java
  • integration-testing/opush/src/test/java/org/obm/opush/command/sync/SyncHandlerOnCalendarsTest.java
  • protocol/src/main/java/org/obm/push/protocol/ActiveSyncProtocol.java
  • push-bean/src/main/java/org/obm/push/bean/SyncCollectionCommandRequest.java
Comment by Stephane COLSON [ 05/Jan/15 ]

Tests done with Ipad (iOS 8.1.2), iphone (iOS 7.1.2); Fairphone FP1 (Android 4.2.2) and Windows Phone Nokia Lumia 920. New contact created, modified then deleted. New event created, modified the deleted. Email received.
OK with Opush 3.0.4 with OBM 3.0.0 on CentOS

More tests will be done with OP-146, but this version is also used for a while by beta testers on Lng prod.

Comment by Thomas HILAIRE [ 19/Jan/15 ]

Reproduction steps: One way to produce this issue, with a Nexus 4 (Android 5.0.1) :
usera with its Nexus4, is configured to synchronize each 10 minutes

  1. usera with its Nexus4, receive en email in its INBOX
  2. usera with its Nexus4, read this email and return to the INBOX view
  3. usera with its Nexus4, he select the read email and drop it with the "bin" button
  4. usera with its Nexus4, force the synchronization

Bad behavior:
the device does not want to synchronize its INBOX anymore

Expected behavior:
the device is able to synchronize its INBOX anymore

Generated at Wed Aug 21 13:23:47 CEST 2019 using JIRA 6.1.1#6155-sha1:7188aeec9a6b57d61ea04c52f235f15f55c105e2.