Can't tweet starting with certain letters / words (POST /statuses/update.json interprets SMS commands)



Twitter has a number of commands arising out of its legacy implementation on SMS:

But, it is still interpreting these SMS commands even if you’re making an API request to /statuses/updates.

So, if you try to send a message where status=“D hello world”, it’ll try to send “world” to the user @hello.

You’re sending a message through the API. It’s not going through SMS. It shouldn’t be interpreting SMS commands.


Crazy how this has never been fixed. Confirmed to be yielding the same results (Tweetdeck).


This has ALWAYS been the case with the Twitter api. You can send a DM through statuses/update prepending with a d.

I’m not sure Twitter would class this a bug to be fixed as this has always been how the API works.


I’m not sure if “it’s always been done this way” is reasonable justification for leaving a bug intact.

The API allows a DM to be sent by making the request specific to that action. Preserving the legacy implementation of an SMS command when the API is being used offers zero utility for the user. On the other hand, it prevents certain messages from being sent as intended.


As I say I’m not sure Twitter would class this as a bug. It’s always been possible to do this quite intentionally since the very beginning


This is true, but the nature of legacy interfaces is that they can often hang around for a long time, and other feature and fix priorities have certainly come ahead of changing this behaviour. We’ve always allowed the D command to be sent via the regular status update endpoint, along with some others. I can’t say whether we’ll update this in the future - the point you make is well taken, but as @richardhyland says, I’m not sure we would classify this as a bug, more as something that we haven’t chosen to change so far.