The Issue

We’ve got a user report from the forum, and one from @Dimitrie Stefanescu about repeated 429s - Too many requests responses being sent in normal connector usage scenarios. This resulted in nothing being sent.

Investigation

We’ve live-debugged and managed to reproduce the exact specific case:

When sending a large model for the first time everything works fine. When modifying only a small part of that model, and sending it out again, we would consistently get a 429 response. We traced this to the diffing endpoint on the server.

Why did this happen?

On first send, the .NET Core SDK does call the diffing endpoint, but because those object do not exist on the server, they’re subsequently being sent out. On a subsequent send action, after a small model change (ie, one object only), the SDK calls the diffing endpoint and it receives info back that all objects in that batch exist; consequently it proceeds to send the next batch to the diffing endpoint, and so on. This results in many fast calls to that specific endpoint which would trigger our rate limits.

Resolution

We have increased the limits on the diffing endpoint, and everything works as expected.