New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mobile: Fixes #10396: Fix Dropbox sync #10400
Mobile: Fixes #10396: Fix Dropbox sync #10400
Conversation
…, fetch another file first before retrying with the original
This is only done on failed download requests (which shouldn't be every download request). For me, this issue occurred when requesting |
Thanks for clarifying. I need to upgrade macOS before I can build using Xcode 15, I'm going to do that and let's try to release this as quickly as possible. How about the privacy manifest, do you know how we can add this? Finally could you try running the test units directly again Dropbox please? As described here: https://joplinapp.org/help/dev/spec/sync#testing It should be fine to limit the tests to just those that contain the "sync" string |
A template is added automatically by newer React Native versions, but I think it still needs to be linked to XCode. Apple documentation on privacy manifests can be found here. The "Next Steps" section of this React Native Community post may also be relevant. |
Most tests pass. A few, however, are failing. (Edit) Re-running the test suite, only one test fails.
Edit: Re-running synchronizer_LockHandler causes one of the previously-failing tests to pass:
The same test fails when running the tests from the |
Is it possible that they've implemented some strange disallow list and they are rejecting the name "garbage.json"? Have you tried naming it differently? How about "desktop.ini"? Maybe it's blocked as well since it could be considered a system file |
If I change |
Thanks for checking, I think we can merge then since all failures seem to be unrelated to your change |
Summary
This pull request applies a workaround to fix a Dropbox sync issue on mobile:
GET
request to/files/download
fails:GET
request for that file.POST
request to download files from Dropbox instead of aGET
request.POST
requests rather thanGET
requests for/files/download
. This forum post is linked as an explanation for whyPOST
won't work for this on iOS.GET
requests seem to fail if multiple requests are sent for the same file, butPOST
requests don't.Fixes #10396.
Note
This pull request targets the
release-2.14
branch.Notes for releasing
Before this change can be released for iOS, we may need to add an iOS privacy manifest for a Joplin update to be accepted by Apple.
Based on the forum post and attempts to reproduce this issue in a local NodeJS REPL, the issue only impacts mobile.
Testing plan
I was able to consistently reproduce the original issue by creating a note, then syncing. As such, it should be verified that:
I plan to test on the following platforms: