Our app uses the Capabilities API to check whether the Memcache service is available or not, and fall back gracefully if Memcache is unavailable. However, since the past several days, we are experiencing intermittent ApiDeadlineExceededException with the following stack trace:
com.google.apphosting.api.ApiProxy$ApiDeadlineExceededException: The API call capability_service.IsEnabled() took too long to respond and was cancelled.
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:101)
at com.google.apphosting.api.ApiProxy.makeSyncCall(ApiProxy.java:50)
at com.google.appengine.api.capabilities.CapabilitiesServiceImpl.getStatus(CapabilitiesServiceImpl.java:29)
Checking our logs, it appears that the Capabilities API had waited for five seconds before timed out and threw the exception. We would rather have the app to be immediately falling back gracefully when the Capabilities API is not available instead of waiting for full five seconds, especially since the service in question is Memcache. Is there any time-inexpensive way to check whether the Capabilities API is available or not?
Also, I tried to open a production issue in the googleappengine issue tracker, but the production issue template and tag seems to be gone.