We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.
Forum Discussion
Ghislain Sommervogel
3 months agoHelpful | Level 5
.NET API : DropboxClient.Sharing.AddFolderMemberAsync() no more completing
Hello, Since yesterday, DropboxClient.Sharing.AddFolderMemberAsync() has stopped working (while all other API calls still work). Basically, I'm just creating a new team folder and then assigning 4 m...
Greg-DB
3 months agoDropbox Staff
The .NET SDK method calls should eventually either return a result or raise an exception (e.g., if the connection takes too long and times out), but depending on how long the calls take, it can take some time to do so and would hang in the meantime.
Like Здравко said, if there are multiple changes at the same time in the same account or shared folder, you can run in to this 'too_many_write_operations' error, which is "lock contention". That's not explicit rate limiting, but rather a result of how Dropbox works on the back-end. This is a technical inability to make a modification in the account or shared folder at the time of the API call. This applies to all account types. This error indicates that there was simultaneous activity in the account or shared/team folder preventing your app from making the state-modifying call (e.g., adding, editing, moving, copying, sharing, or deleting files/folders) it is attempting. The simultaneous activity could be coming from your app itself, or elsewhere, e.g., from the user's desktop client. It can come from the same user, or another member of a shared folder. You can find more information about lock contention and optimizations you can make here. The app will need to be written to automatically handle this error.
In short, to avoid this error, you should avoid making multiple concurrent state modifications and use batch endpoints where possible. That won't guarantee that you won't run in to this error though, as contention can still come from other sources, so you should also implement error handling and automatic retrying as needed.
Similarly, a 504 error indicates a transient server availability issue and should be retried.
I recommend referring to the error documentation and Error Handling Guide for more information.
- Ghislain Sommervogel3 months agoHelpful | Level 5
Hi Greg,
Like I said, imho there is no activity that could explain the error here. The shared folder has just been created and there is absolutely no activity on my dropbox account on the desktop or on the web. The only activity for the folder / account consists in a single API call for adding 4 members to the newly created folder. If that only can result in that kind of exception, I wonder whether the API is really usable for automating complex tasks.
But forget about the "too_many_write_operations", I worry MUCH more about the other behavior : the "await AddFolderMemberSync" that never ends. Requested changes are made right after the API call (I can view the correct memberships in the admin console), but even after one hour the application still "await" the API call. If some calls to the API never return (no KO nor OK nor exception... just nothing), it makes all programming work uneffective and the full API useless! What can be done to monitor what happens? Should I open a support ticket? Thanks for your advice.
- Здравко3 months agoLegendary | Level 20
The API always returns (with either success or some error). What you're talking about is Dropbox .Net SDK though - make difference. 🙂 It's different thing and, by idea, it's supposed to make your life easier. As seems, in your case, something makes the SDK to think API call never finish and that's why it blocks. This SDK always returns when entire request finished, for all non download requests (as is in your case), something that makes debugging of such issues difficult unfortunately. You may want to pass your own HTTP client, with customized handler, that will let you follow what exactly happens or to re-implement on your own the particular call only. If I am in your shoes, I will do that (one of the both). In such a way you will have much more detailed view of what happens and see where exactly is the issue. Also, you will be able see the request ID that may help further debugging (.Net SDK provide it on clearly identified error only). Do it! 😉
Good luck.
- Ghislain Sommervogel3 months agoHelpful | Level 5
Thank you Здравко for the advices. I'm not used to programming direct calls to APIs using http clients, but I'll give it a try 😉
- Greg-DB3 months agoDropbox Staff
The SDK methods should always either return or throw some error, but if it's blocking for a long time, it may be helpful to inspect the requests/responses directly as Здравко said.
We're also happy to take a look on our side if you'd like. Feel free to open an API ticket here at your convenience. If you do so, please share as any/all detail that you can, including steps/code to reproduce the issue, relevant app ID, member ID, namespace ID, and timestamps of calls. Be sure to redact any access tokens, refresh tokens, or app secrets though. Please also include this thread URL for context. Thanks!
- Ghislain Sommervogel3 months agoHelpful | Level 5
Thanks Greg. The API call works again. It it happens to freeze again, I'll probably open a ticket for help. Have a nice day.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,877 PostsLatest Activity: 12 months agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!