TEMP_DISABLED Q&A

by Dan Corbin on August 13, 2014

Accessing the inbox is tricky since each email provider operates differently. Not surprisingly this lack of uniformity can cause problems. One example is how the TEMP_DISABLED status is applied. If you’ve experienced it, you know it can be unpredictable and quite frustrating…but we’re here to help!

What is TEMP_DISABLED?

The TEMP_DISABLED status means the Context.IO API is temporarily unable to connect to a specific email account. The issue is specific to the account and it does not mean that there’s a problem with your application or the Context.IO API.

Why does it occur?

The status is likely due to the email server being unreachable or the email service provider throttling the API. Often there are too many simultaneous connections to the email account. The amount of connections can get quite high when you consider mobile phone apps, desktop email clients, and our services combined.

Once an email account is TEMP_DISABLED for four hours, an API request to http://context.io/docs/2.0/accounts#get can be made to attempt to reestablish a connection. After three consecutive failed connections, the IMAP syncing of this account is completely disabled and manual intervention will be needed to bring it back.

How can I tell if my accounts are TEMP_DISABLED?

If you make a request to this endpoint: http://context.io/docs/2.0/accounts#get with the status_ok parameter set to 0, it will return a list of all accounts that have sources in temporary or permanent failure.

How can I fix affected accounts?

You can attempt to fix the TEMP_DISABLED status in two ways. Hit the endpoint at http://context.io/docs/2.0/accounts/sources#id-post with either the status=1 param or the force_status_check=1 param. The difference between them is that the status param will reset the status in our records so an API request can be made by you, and the force_status_check param will actually make a request to IMAP and try to force a connection. For more information, please review the documentation on how to modify a data source on a given account.

How can I avoid the TEMP_DISABLED status?

Even though each email provider has different reasons for throttling, we can recommend a few best practices. The first is to reduce the number of API requests to the IMAP server with an efficient and judicious design of your application. For example, if you are using the 2.0 API perhaps you can use the message header data, which is cached, instead of fetching the entire message again. You can also use WebHooks for alerts when a specific type of update has occurred. This is more efficient than periodically connecting to an account to poll for new data.

Another suggestion is to prevent too many open connections on the IMAP server. Providers throttle accounts with alot of connections to protect against robots and automated scripts, prevent abnormal bandwidth utilization, and stop other abusive activity. Gmail recommends mail clients only check email every 10 minutes. More frequent checks might receive an INVALID CREDENTIALS error which we return as TEMP_DISABLED (see this article for more info). The logic will eventually correct itself via retries but it’s important not to open too many connections to user accounts through your application.

We hope this has provided insight into TEMP_DISABLED and how you can avoid it in the future. If you have any questions, please leave them in the comments section or contact our support engineers. We’re always happy to schedule a call if you have technical questions!


{ 0 comments }

Status, Alerts, and Transparency

by Dan Corbin August 6, 2014

“Sometimes being too transparent can be a bad thing.” We disagree. A core value of Context.IO is being as transparent as possible. If we do the right thing and have no secrets with our partners, we’ll both know where we stand and together we can make great products. This core value can be seen in […]

Read the full article →

New Lite Features!

by Dan Corbin July 23, 2014

You asked and we listened! We’ve had a great response from those using Lite and we’re making updates based on your feedback. We introduced two new features and have more in the works. A very special thank you to companies such as Unified Inbox and OnePageCRM for their generous input. The feedback is critically important […]

Read the full article →

Google Announces Gmail API

by Dan Corbin July 8, 2014

Google has announced the beta of a Gmail API which makes them the first email provider to offer an API for users’ inboxes. As an email API pioneer, we are very excited about this new functionality from Google. It acknowledges something that we all know—email is a valuable development platform which developers like you work […]

Read the full article →

A conversation with FollowUp.cc

by Dan Corbin May 22, 2014

Tell us about Followup.cc. What does it do? Seven years ago, Chris Keller founded FollowUp.cc when he realized that his own inbox was on overload and he was having trouble tracking prospects and clients for his own business development needs. He created a simple way to schedule tasks and reminders on any email client using […]

Read the full article →

Context.IO Lite Is Now Live!

by Dan Corbin May 5, 2014

We’ve ripped the beta label off and are happy to announce the full release of the Context.IO Lite API! You now have another fast and easy way to add e-mail data directly into your application. Our new REST API offers reliability, stability, and speed. We gathered great feedback during the beta period and are lining […]

Read the full article →

Reset your password on Context.IO

by Dan Corbin April 28, 2014

You may have heard of a serious security issue affecting many websites and services known as Heartbleed that could potentially allow attackers to access passwords, usernames, and other account information. Our engineers took immediate action to secure Context.IO’s infrastructure. We’ve replaced affected SSL certificates, and all external services have been patched. As a general precaution, […]

Read the full article →

Announcing Context.IO Lite API (beta)

by Marii Thompson March 10, 2014

Today we are proud to announce the general availability of the Context.IO Lite API! This started as a small project to improve the performance of webhooks, but quickly grew as we recognized the performance and potential uses for Lite. Our goal for this release is to gather performance data and feedback from early adopters. This […]

Read the full article →

Rate Limit Exceeded

by Ben Hamill February 6, 2014

We recently shipped a change to improve the way we communicate about rate limits when a developer hits one. Previously, we responded with a 503 (“Service Unavailable”), intending to indicate that, because the limit had been hit, the server was unavailable. We’ve come to think that this wasn’t terribly clear of us. Starting today, we’re […]

Read the full article →

2013-12-06 Service Outage

by Marii Thompson December 11, 2013

Hi, my name is Marii. I lead the Engineering team here at Context.IO and I hate for my first post to be about an outage, but I am glad to work with such a talented team of engineers who quickly responded to the issue. On Friday, Context.IO suffered a major service interruption. I am deeply […]

Read the full article →