Flask Cli Shows "Typeerror: Exceptions Must Derive from Baseexception"

Flask Cli Shows "Typeerror: Exceptions Must Derive from Baseexception"

When I run Flask from the terminal with flask run, if my code has an error I see "TypeError: exceptions must derive from BaseException" instead of the actual error. To debug it I need to open the browser and inspect the exc_info variable in the Werkzeug debugger, which is not convenient. Why is Flask doing this? How can I see the actual error in the terminal?

$ FLASK_APP=example flask run

Traceback (most recent call last):
  File "[...]/lib/python3.9/site-packages/flask/cli.py", line 356, in __call__
    self._flush_bg_loading_exception()
  File "[...]/lib/python3.9/site-packages/flask/cli.py", line 344, in _flush_bg_loading_exception
    raise exc_info
TypeError: exceptions must derive from BaseException

1 Answer

This is a bug introduced in Flask 2.0 that will be fixed when Flask 2.0.2 is released. The CLI was incorrectly re-raising sys.exc_info() instead of only the exception object. Until then, you can turn off lazy loading by running with flask run --eager-loading.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Robert Thorne
Author

Robert Thorne

Robert Thorne covers electric vehicle innovations, autonomous driving systems, global mobility trends, and automotive engineering developments.