Errors returned to geckoboard are always 500 errors
When an error is raised in the chameleon controller, raise is used with a string, which never gets caught and leads to a 500 error and (by default) rails will return a html error page of some sort, which geckoboard cannot understand. Geckoboard then shows the user the error "Sorry, server error", which makes it difficult to know what has gone wrong.
In the geckoboard documentation it's possible to return an xml document on 403, 404 and 500 errors, that looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<error>Access denied.</error>
</root>
Which (I believe) geckoboard can understand and give a human-readable answer to the end user, when combined with the appropriate status code.
I think this could be solved by adding an error template, and rendering it instead of raising errors (with 403 status for auth error, 404 for template not found). Any uncaught errors could be caught using rescue_from and then rendered with a 500 status code.