title: Flask custom error page 500 not working
body: <p>I have the following code in <code>__init__.py</code></p>
  
  <pre><code>@app.errorhandler(404)
  def page_not_found(e):
      return render_template('404.html'), 404
  
  @app.errorhandler(500)
  def internal_server_error(e):
      return render_template('500.html'), 500
  
  @app.errorhandler(403)
  def page_forbidden(e):
      return render_template('403.html'), 500
  </code></pre>
  
  <p>It used to catch all 500 errors and show my nice 500.html template. However I moved all my views into separate blueprint files and now the 500 errorhandler does not work. It is only that handler though. 404 works just fine. </p>
  
  <p>If the server throws a 500 error, it will display the default Chrome INTERNAL SERVER ERROR message and not my template. Did I do something wrong when I created all my blueprints that would create this issue?</p>
  
  <p>Here is the entire <code>__init__.py</code> file</p>
  
  <pre><code>import datetime
  import mysql.connector
  import os
  from flask import Flask, render_template, session, request, Blueprint
  from flask.ext.moment import Moment
  from flask.ext.login import LoginManager
  from db_classes import User
  
  from info import info_blueprint
  from claims import claims_blueprint
  from users import users_blueprint
  from members import members_blueprint
  from drug import drug_blueprint
  from auth import auth_blueprint
  from formulary import formulary_blueprint
  
  from config import MYSQL_USR, MYSQL_HOST, MYSQL_PASS, MYSQL_DB, MYSQL_PORT, second_to_live
  
  from decorators import role_required
  
  app = Flask(__name__, template_folder="static/templates")
  app.config.from_object('config')
  
  moment = Moment(app)
  
  login_manager = LoginManager()
  login_manager.init_app(app)
  login_manager.session_protection = 'strong'
  login_manager.login_view = 'login'
  
  @login_manager.user_loader
  def load_user(user_id):
      return User.query.get(int(user_id))
  
  
  ####################
  #   Blueprints
  ####################
  
  app.register_blueprint(info_blueprint)
  app.register_blueprint(claims_blueprint)
  app.register_blueprint(users_blueprint)
  app.register_blueprint(members_blueprint)
  app.register_blueprint(drug_blueprint)
  app.register_blueprint(formulary_blueprint)
  app.register_blueprint(auth_blueprint)
  
  
  
  #####################
  #   Error Routes
  #####################  
  
  
  @app.errorhandler(404)
  def page_not_found(e):
      return render_template('404.html'), 404
  
  @app.errorhandler(500)
  def internal_server_error(e):
      return render_template('500.html'), 500
  
  @app.errorhandler(403)
  def page_forbidden(e):
      return render_template('403.html'), 500
  
  #####################
  #   Context Processors
  #####################
  
  @app.before_request
  def make_session_permanent():
      session.permanent = True
      app.permanent_session_lifetime = datetime.timedelta(seconds=second_to_live)
  
  @app.context_processor
  def inject_time():
      return dict(current_time=datetime.datetime.utcnow())
  
  if __name__ == "__main__":
      app.run(host= '0.0.0.0', debug=True)
  </code></pre>