Lottery Error Message & Consultant Thoughts On Food

I love collecting samples of error messages, especially branded error messages. Today’s sample comes from the Illinois Lottery website – or to be more exact, their iOS app which frames a web page:

A screenshot of the Illinois Lottery iOS app, showing an error page. I quite like the image of an unplugged power cord to depict an error.
A screenshot of the Illinois Lottery iOS app, showing an error page. I quite like the image of an unplugged power cord to depict an error.

As I’ve discussed before, I’ve spent quite a few years as a consultant – while working as a consultant, I loved staying at DoubleTree hotels: their prices were fair, with good amenities targeted towards business travelers. That’s why I’m pleased to see that DoubleTree recently published their recipe for cookies – they were always a tasty treat when checking in.

Speaking of recipes, I’m also pleased to note that Chipotle published their recipe for guacamole. I enjoy eating at Chipotle when I travel: it’s a good, healthy helping of food in an easily portable burrito.

Chipotle tweet showing their recipe for guacamole.

Disney Waiting Page

I like to collect examples of error pages, but this is slightly different. When I was browsing Disney.com, I was shown the below page asking me to wait until the request could be completed.

Notice the stylized Space Mountain image in the middle, which helps to customize and personalize the page to the Disney branding. This is a good page to use as a template if you need to build a similar long-waiting page.

Screenshot of a Disney page asking the user to wait while a long-running request executes.
Screenshot of a Disney page asking the user to wait while a long-running request executes.
A close-up of the stylized Space Mountain image, which helps to brand the page with the Disney theme.
A close-up of the stylized Space Mountain image, which helps to brand the page with the Disney theme.

YouTube – Search Found Nothing

As I’ve said before, I love collecting samples of error pages, especially when companies take the extra time to personalize or make the error funny.

Perhaps this isn’t an error per se, but I love the image YouTube pops up when its search function can’t find anything relevant to the query:

no results found on youtube search. image shows a twisted telescope.

Amazon Error Pages

As I’ve said before, I love documenting error pages from popular web sites: they often have a sense of humor or show off another face of the company.

Here’s an example of an Amazon error page. What a handsome looking dog!

An Amazon error page.

App Engine Downtime Notices

App Engine downtime and maintenance notices are posted to the Google Group google-appengine-downtime-notify, located at https://groups.google.com/forum/#!forum/google-appengine-downtime-notify . It’s a good idea to monitor this list for any issues with the App Engine platform.

It’s especially important to subscribe to these notices if your application is still on the M/S datastore. The M/S datastore is occasionally moved into a read-only state for maintenance, and these maintenance periods are announced over the downtime list.

Subscribing to the google-appengine-downtime-notify list is easy: go to the above linked address and click on the button marked Join Group. As you can see from the below pictures, this list is extremely low-traffic (less than 1 email a day).

App Engine System Status

The App Engine system status console is located at https://code.google.com/status/appengine . It’s a good idea to keep this page bookmarked to monitor GAE’s performance.

Here’s how the status page looks like when everything is running well:

Here’s an example of how performance issues are reported:

AccessControlException Resulting From RuntimePermission: modifyThreadGroup

While using certain libraries on App Engine, you may encounter the following exception notice:

javax.servlet.ServletContext log: 
    Exception while dispatching incoming RPC call
threw an unexpected exception: 
    java.security.AccessControlException: 
    access denied (java.lang.RuntimePermission modifyThreadGroup)

If you see this exception message, your application or (more frequently the case) a library is attempting to create a new thread. App Engine doesn’t allow frontend instances to spawn threads, so any attempt to start up a thread will result in AccessControlExceptions.

However, App Engine does allow backend threads: threads which run within backend instances. If your application absolutely needs to run threads, run the threading component within a backend or a backend module.

DatastoreFailureException: Internal Error Exception Messages

On rare occasions, an application may spawn errors similar to the below:

com.google.appengine.api.datastore.DatastoreFailureException: 
    internal error.
at com.google.appengine.api.datastore.DatastoreApiHelper.translateError     (DatastoreApiHelper.java:50)
at com.google.appengine.api.datastore.DatastoreApiHelper$1.convertException     (DatastoreApiHelper.java:70)

As the exception message suggests, this log indicates that the datastore encountered an internal error while handling the datastore operation. Unfortunately, there’s nothing that a developer can do to fix this error since it’s an internal App Engine issue.

Generally this type of exception fixes itself sooner or later; if it persists, file an issue at the App Engine bug tracker: https://code.google.com/p/googleappengine/issues/entry?template=Production%20issue