Quick note for future reference:
Sinatra will ordinarily enable :raise_errors
when :environment
is
:production
. From my reading of the code, this causes Sinatra not to
attempt to handle exceptions but to let them bubble up to the surrounding
Rack container. In this situation, error-handling directives like
error do
@error_msg = request.env['sinatra.error']
haml :error_page
end
have no effect.
In order to fix the problem, just explicitly disable :raise_errors
in the
Sinatra application.