Hi, I've got it in my logs:
File "/base/data/home/apps/contact-birthdays/1.336002949603692439/ birthdaysapp/views.py", line 123, in index_view read_only = not(capabilities.CapabilitySet('datastore_v3', ['write']).is_enabled()) File "/base/python_lib/versions/1/google/appengine/api/capabilities/ __init__.py", line 98, in is_enabled config = self._get_status() File "/base/python_lib/versions/1/google/appengine/api/capabilities/ __init__.py", line 167, in _get_status self._stub_map.MakeSyncCall('capability_service', 'IsEnabled', req, resp) File "/base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py", line 72, in MakeSyncCall apiproxy.MakeSyncCall(service, call, request, response) File "/base/python_lib/versions/1/google/appengine/api/ apiproxy_stub_map.py", line 255, in MakeSyncCall rpc.CheckSuccess() File "/base/python_lib/versions/1/google/appengine/api/ apiproxy_rpc.py", line 111, in CheckSuccess raise self.exception OverQuotaError: The API call capability_service.IsEnabled() required more quota than is available. There's nothing in the dashboard, but quotas have been reset since I've started receiving this exception, now everything's ok. Application id: contact-birthdays Regards, Pedro Morais On Sep 1, 10:51 am, "Nick Johnson (Google)" <nick.john...@google.com> wrote: > Hi tijer, > What is your App ID, and what is the exact quota error you were seeing? > > -Nick > > > > > > On Mon, Aug 31, 2009 at 7:50 PM, tijer <troels...@gmail.com> wrote: > > > 12 hours from now everything will revert to read-only and memcache > > will fail. So, what to do? Well, x from Google provided a very useful > > option on how to detect that the server has gone into read-only mode: > > > capabilities.CapabilitySet('datastore_v3', ['write']).is_enabled() > > > This will return a boolean value, and should look something like the > > following in python: > > > from google.appengine.api import capabilities # check capabilities > > with this import > > > if capabilities.CapabilitySet('datastore_v3', ['write']).is_enabled() > > == False: > > # render page normally here, including relying on writes and > > memcache > > else: > > # fail gracefully here - possibly letting the user know that there's > > maintenance going on and that he/she should wait half an hour and > > check again > > > HOWEVER, there is a huge problem. I just did something similar for my > > app, with the result that it immediately gave me massive quota-fails. > > As soon as 100 of the capabilities.CapabilitySet('datastore_v3', > > ['write']).is_enabled() had been used, it began returning over-quota > > errors in the logs. > > > I can't find the quota-reference that I have presumably been > > surpassing anywhere in the documentation, but it suddenly showed up as > > "Capability Configs Requested" and "Capability Configs Recieved". This > > should really have been reflected in the email sent out, or at least > > in the quota documentation. > > > Under normal circumstances I would cache the response by is_enabled() > > in memcache - but since this will not work either during maintenance - > > there's really nothing to use the above for unless your site will have > > less than 100 hits. > > > I write this, so that others might not do the same. > > -- > Nick Johnson, Developer Programs Engineer, App Engine --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---