-
Notifications
You must be signed in to change notification settings - Fork 220
Description
It seems like the way that ServerTransport is batching the objects and sending to POST /objects/:streamId is not able to handle a large amount of objects, because it yields enough POST requests to that endpoint, that it restarts returning 500 errors.
@iainsproat mention it can be a firewall or other mechanism.
Problem
I have described the problem here.
Also, I have produced a codesandbox to reproduce the issue here.
Solution
The solution would be for the code on the sandbox mentioned above to work.
- It works (the objects are sent)
- It is fast. I am under the impression that due to the 500 errors the retry mechanism is just making the process hang before attempting again.
Technically, I would suggest enhancing the ServerTransport to compress the batch using application/zip instead of application/json, so that it can send more objects per request, meaning less total requests.
Additional context
Please have a look at the following discussion: https://speckle.community/t/is-there-a-rate-limit-on-post-objects-projectid/12310