Occasionally when calling the POST direct_messages/new endpoint I get the following error:
Twitter Error: 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following).
message - There was an error sending your message: Whoops! You already said that.
code - 151
The problem is it seems the DM actually seems to goes through. The published date of the DM is the exact same as when the application made the call. Then the user retries a couple of minutes later because the application reported an error the 1st time and the DM gets sent a 2nd time.