app
app copied to clipboard
Futher refinement of potential client/server configuration synchronization.
Summary
After PR #1820 was merged, the race condition motivating issue #1524 should largely be moot.
However, it is possible that it will be triggered again, and fixing the issue also highlighted other areas for possible improvement:
- Add a transaction to the server so an error will be reported on 'collision.'
- Have the client retry on error somehow. Perhaps by recording a timestamp for last client side update and last server side sync, and occasionally validating that the two match.
- Have the client report errors, e.g. add an event to who_service like widget.analytics.logEvent(name: 'WhoServicePutClientSettings', parameters: {'result': response.statusCode});
Reproduction Steps
Expected steps to reproduce the behavior. Note that this is possible to simulate, but likely to be rare in actual occurrence.
Trigger client settings changes (e.g. change country, change notification) while there are server or network issues causing slow or failed responses.
Result
Client changes may or may not be synchronized correctly to the server.
Expected Behavior
Client will eventually sync correct values to server.
System
- Device: [e.g. iPhone6]
- OS: [e.g. iOS8.1]
- App Version: [1.2.0+14]
Additional Context
Add any other context about the problem here.
Screenshots
Screenshots
Add any relevant screenshots hereChecklist:
- [ ] Searched the existing issues to ensure you are not creating a duplicate.
- [ ] Followed the Contributor Guidelines.