Let me draw an analogy: imagine that one day before release MySQL (or pick your favorite DB) decided to deprecate and ignore the the greater than > operator on queries. No errors - it would just pretend that query clause didn't exist and return all rows for queries that used a >. How would that affect your application?
Well, most people would run their test suite, notice that MySQL broke, and then revert that MySQL update. Completely different.
When you are accepting untrusted data from the Internet, you need to validate it. If Twitter sends you invalid data, it is your loss, not theirs. Code accordingly.
I got bitten by this as well, even though I'm checking for duplicates like you suggest -- it just jacked the total bandwidth usage way up, because calls previously returning 1 or 2 messages were suddenly returning the max every time.
Well, most people would run their test suite, notice that MySQL broke, and then revert that MySQL update. Completely different.
When you are accepting untrusted data from the Internet, you need to validate it. If Twitter sends you invalid data, it is your loss, not theirs. Code accordingly.