26
22 Comments

How a Twitter API suspension nearly killed my startup

🏖 It all started with a vacation

A couple weeks back I took a week off to relax and recharge after a really busy start to the year.

The week started off great! I spent time with family and friends on the first day and everything was peachy.

The next day, I had a Zoom call that I couldn't get out of (I don't usually take work calls during a vacation), but I wasn't going to let that get me down... I planned to power through the call and then get back to my vacation as swiftly as possible.

Little did I know that during that call, my day was about to take an unpleasant turn...


⛔️ The suspension

About half way through the meeting, I started seeing warning alerts from my error monitoring (Honebadger) in my Thread Creator Slack channel. I ignored the first one because I really didn’t want to be that guy who is doing other things instead of paying attention to the meeting.

The messages kept coming though, and so I was eventually forced to take a look.

Low and behold, my Twitter API access had been suspended, basically rendering my entire product useless.

Thread Creator is a tool that allows you to create, organize and schedule Twitter threads.

Not only could users not send out their Twitter threads. New users couldn’t sign up (I only offer login via Twitter).

Luckily, the meeting ended earlier than expected, and so I took a deep breath and set to work on figuring out what was going on.


🙏 Grasping at straws

The error message that was being returned from the API wasn’t super informative so I decided to login to the developer portal to see if there was any additional information available.

The only information I could find was the following message:

This App has violated Twitter Rules and policies. As a result, certain functions will be limited. An email has been sent to [my email address] with details. For assistance, submit a support ticket.

I hadn’t received any email, so I proceeded to submit a support ticket. The confirmation page said it may take a couple of days before this would be looked at.

Days!! 😱

Meanwhile, hundreds of users were completely stranded and unable to get their threads published.

I quickly realised that the only way this was going to get fixed was if I widened the net and sought help from as many people and avenues as possible.

I created a new topic in the Developer Forum, messaged friends, reached out to fellow makers on Makerlog and DM’d various folks who work at Twitter who I thought could help.

Over 24 hours went by and nothing changed, the API suspension remained in place.


🦸‍♂️ Enter a hero

The next day, more than 24 hours after the suspension, I had basically resigned myself to waiting for Twitter Support to get back to me, and I decided to try to put my concern aside and enjoy my vacation.

About 6 hours later (30+ hours since suspension) I received a DM reply from someone who works at Twitter. They mentioned that they had asked the team to look into this and that someone from Support should be reaching out shortly.

WHOOHOOO! 🎉 There might just be a chance...


🚀 Back in business

I immediately checked my email and found a response from Support with a somewhat limited explanation of what had happened.

One of my users had "@ mentioned" too many users in a thread they had created.

I guess I could see how that might be seen as "spammy behaviour"...

The email went on to state that I should respond with how I plan to mitigate this issue.

I replied that I would absolutely put extra protections in place, and I also politely suggested that in future, it would be nice to have a warning or some advanced notice about a potential suspension, instead of just an immediate cut off of services.

Within 30 minutes I received a reply letting me know that the suspension had been lifted. I breathed a deep sigh of relief and went on with my day (we had plans with some friends).

I'm pretty sure that this problem would still be ongoing had that amazing person from Twitter not pushed it to the top of the support team’s list.

I won’t mention who they are, as I’m sure they will become inundated with requests for help, but I’m extremely grateful that they helped me out! 🙌


📚 Takeaway Lessons

I definitely learned a couple things through this process and I have three suggestions for anyone thinking of building something on top of a third party API.

  • Make sure that you have proactive measures in place to comply with their policies (ensuring your users comply).
  • Try to get to know and build relationships with people at the company whose API you are using (do this before you need their help).
  • Think twice before you build a product that relies on large third party APIs - platform risk is exactly that...a big risk to your business.

🙌 Let's connect

I am documenting and sharing my journey building self-funded startups, every step of the way on Twitter, so follow me over there for more.

  1. 8

    Think twice before you build a product that relies on large third party APIs

    ^This.

    Another potential risk is a sudden price increase. An API I was relying on just increased 10x its monthly price (went from $80 to $800), which forces me to either pay that (hint, I can't at this stage of growth) or build it myself.

    1. 1

      Yeah, that's definitely something to consider too! Thanks for sharing 👍

  2. 4

    Scary is the word! Glad it got sorted and thanks for sharing.

    1. 1

      Definitely something you want to avoid if you can!

  3. 2

    Founder of Zlappo here, we also offer Twitter thread scheduling + other forms of automation.

    While we've never been suspended before (we've only been rate-limited once we crossed the 300 tweets/3-hour per-app POST limit), I can confirm that it's indeed scary when you get API errors from Twitter that hampers your business.

    I've had tweets/threads not going out before for hours at times (due to rate limits), and users are very quick to notice/complain, and often rather unforgivingly too.

    Much like YouTubers, we're at the mercy of Twitter. That's the price we pay if we want to leverage on their platform to build our user base up quickly.

    When it comes to Twitter automation, you must be firm and say no to people who even remotely sound like they might abuse your platform.

    Anytime anyone comes to me and asks if I'll build an automation that will repeatedly tweet something over and over again, cross-post the same content to a dozen accounts, bulk-unfollow those who don't follow back, send mass unsolicited DMs, retweet something excessively (e.g. a user wanted me to build a feature allowing them to retweet the same promo tweet once every hour for days), etc. etc., I just say, "No, find someone else."

    Unfortunately for your case, you can't be expected to manually monitor every user.

    But sometimes just looking into what your users are doing from time to time can be helpful.

    More than once, I've found users simply abusing the platform for unsupported use cases, doing things that frankly won't increase their engagement or grow their audience either, and I had to shut it down quick.

    PS In the future, if you need a quicker response, you can search the Twitter Community forums, ping a few members of the Twitter Staff, like Andy and Jessica, and they can help you out on a per-case basis.

    I've found success doing that in resolving my Twitter API issues.

    1. 2

      Thanks for sharing your insight here. In my case, I did actually open a topic on the forums and I did ping Andy and Jessica (Andy has also helped me in the past) but I'm sure they were just pretty busy too.

  4. 2

    It's a bad look for Twitter when a support ticket that risks breaking your business can go unanswered for DAYS unless you know someone who works there.

    It's a VERY bad look for Twitter when they don't warn you about the stuff they flag. I mean, how can they expect you to know that when there are n+1 mentions, you're being spammy?

    It's almost as if they have a part-time CEO... oh wait! They do! ψ(._. )>

    1. 1

      I still love Twitter as a product, and they are definitely showing a lot of signs of improvements, but I agree its not ideal to be suspended without any kind of warning. Hopefully that's something they fix soon! 🤞

  5. 2

    Scary stuff! Really glad it didn't end up being days. I'm definitely encouraged by the fact that you need to find people behind the systems that can help. Being able to get in touch with the right people holds so much value!

    1. 1

      Yeah, I don't think it's ideal that the only way to solve this way to reach out to someone at Twitter, but yes definitely helps to speak to someone with inside info when possible.

  6. 2

    That is so scary, to know that a service might cut you off for no reason. Maybe you can have some kind of circuitbreaker, where if the Twitter api is down, users can still login and schedule tweets

    1. 2

      @ruudniew Yeah it is pretty scary, but that's the risk when you are building on a large platform like Twitter.

      Yeah, definitely will put in additional measures to mitigate some of the risk moving forward.

  7. 2

    I still LOVE Twitter, but just wanted to share my experience so others can learn from it and think carefully before building a business that is completely reliant on a third party 👍

  8. 1

    Wow! Scary and very interesting.

    I also depend on Twitter API for my project. It's there a place where I can check what is considered spammy behavior? Like how many mentions may be included in a given tweet, etc.

    1. 2

      Nope, that's the tricky part. It's based on a complex algorithm. So you have to just try to put in as many protections as possible.

      1. 1

        Thanks for the info!

  9. 1

    I am amazed at how Twitter does not check that every one of their tweet rules are enforced when the API request is made. This could have prevented any such issue because the client would just get a response with the reason of why the tweet was not allowed.

    Additionally it is crazy that they don't warn before closing the access and lastly that they don't have a prioritization system in place for service disruption like this, it is quite unprofessional. I am building my own system that relies very heavily on many APIs so I will make sure to check all the terms and setup protective measures.

    Sorry for spreading all that negative energy in my comment 😅

    In your case, are you allowed to read the user's tweet to look for mentions? 🙂

    Thanks for the post so I know what to look out for.

    1. 1

      You are welcome and yeah I do have a check in place to make sure that I limit "spammy" @ mentions moving forward 👍

  10. 1

    Thanks for sharing helpful information.

Trending on Indie Hackers
I sold my first bootstrapped SaaS business. AMA! 11 comments How do you as a developer deal with sales & marketing? 10 comments The surprising way I run my $800k ARR design service 8 comments Why I chose PayPal checkout over Stripe 8 comments Creating code with Artificial Intelligence. Good or Bad? 5 comments Posting content to site ≠ promoting 1 comment