-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
[BUG] Flask 2.2.0 unbound_message error. #2184
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
This line is the error:
Related to flask 2.2.0, you can pin earlier version of flask to fix the issue in the meantime. |
Generally though people are able to use Dash with Flask 2.2 (eg #2177) - so is there something else required to generate this problem, some other pinned dependency? |
It's werkzeug version mismatch, flask 2.2.x needs werkzeug 2.2.x |
I've also had a report of this error coming up with a slightly different stack trace:
Downgrading Flask resolved this. @T4rk1n do you think this is the same version mismatch problem? |
@hannahker Yes, this happen when flask 2.2.x is installed but not werkzeug, possibly because werkzeug version was locked in requirements.txt but not flask |
Describe your context
Environment currently running in Docker, with the following Dockerfiles:
Our ubuntu:latest dockerfile:
FROM ubuntu:20.04
ENV DEBIAN_FRONTEND="noninteractive"
LC_ALL="en_US.UTF-8"
LANG="en_US.UTF-8"
LANGUAGE="en_US.UTF-8"
RUN apt-get update &&
apt-get upgrade -y &&
apt-get install -y ca-certificates tzdata locales &&
update-ca-certificates -f &&
rm /etc/timezone &&
rm /etc/localtime &&
echo "Europe/Berlin" | tee /etc/timezone &&
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime &&
dpkg-reconfigure --frontend noninteractive tzdata &&
locale-gen en_US.UTF-8 &&
echo "LC_ALL=en_US.UTF8" > /etc/default/locale &&
echo "LANG=en_US.UTF8" >> /etc/default/locale &&
echo "LC_CTYPE=en_US.UTF8" >> /etc/default/locale &&
echo "LC_COLLATE=en_US.UTF8" >> /etc/default/locale &&
chmod 0755 /etc/default/locale
Our python:latest dockerfile:
FROM **/base-images/ubuntu:latest
ADD pip.conf /etc/pip.conf
ENV REQUESTS_CA_BUNDLE="/etc/ssl/certs/ca-certificates.crt"
PIP_DEFAULT_TIMEOUT=120
RUN apt-get update &&
apt-get install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev curl &&
mkdir /tempdir &&
cd /tempdir &&
curl https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgz -o python.tgz &&
tar -xvzf python.tgz &&
cd Python-3.10.2 &&
./configure --enable-optimizations &&
make &&
make install &&
cd &&
rm -rf /tempdir &&
python3 -m pip install --upgrade pip &&
pip3 install requests &&
apt-get remove -y curl wget
USER app
WORKDIR /app
ENV PATH="${PATH}:/app/.local/bin/"
CMD ["/usr/bin/python3"]
Our dash:latest dockerfile:
FROM **/base-images/python:latest
USER root
RUN pip3 install dash dash-renderer dash-html-components dash-core-components plotly gunicorn Flask
EXPOSE 5000
USER app
COPY *.py /app/
CMD ["gunicorn", "--workers", "1", "--bind", "0.0.0.0:5000", "--timeout", "100000", "--max-requests", "20", "--access-logfile", "-", "--error-logfile", "-", "--capture-output", "application:server"]
Our docker file:
FROM **/base-images/dash:latest
EXPOSE 5000
CMD ["gunicorn", "-w", "1", "-b", "0.0.0.0:5000", "-t", "0", "--max-requests", "0", "--access-logfile", "-", "--error-logfile", "-", "--capture-output", "index:server"]
USER root
COPY requirements.txt /tmp/
RUN pip3 install -r /tmp/requirements.txt &&
rm /tmp/requirements.txt
USER app
COPY . /app
pip list | grep dash
belowDescribe the bug
I am not able to start my app, I get the following error:
[2022-08-08 11:24:34 +0200] [1] [INFO] Starting gunicorn 20.0.4
[2022-08-08 11:24:34 +0200] [1] [INFO] Listening at: http://0.0.0.0:5000 (1)
[2022-08-08 11:24:34 +0200] [1] [INFO] Using worker: sync
[2022-08-08 11:24:34 +0200] [8] [INFO] Booting worker with pid: 8
[2022-08-08 11:24:34 +0200] [9] [INFO] Booting worker with pid: 9
[2022-08-08 11:24:34 +0200] [10] [INFO] Booting worker with pid: 10
[2022-08-08 11:24:34 +0200] [8] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/app/index.py", line 1, in
import dash_bootstrap_components as dbc
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/init.py", line 5, in
from dash_bootstrap_components import _components, icons, themes
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/_components/init.py", line 1, in
from .Accordion import Accordion
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/_components/Accordion.py", line 3, in
from dash.development.base_component import Component, _explicitize_args
File "/usr/local/lib/python3.8/dist-packages/dash/init.py", line 5, in
from .dependencies import ( # noqa: F401,E402
File "/usr/local/lib/python3.8/dist-packages/dash/dependencies.py", line 4, in
from ._validate import validate_callback
File "/usr/local/lib/python3.8/dist-packages/dash/_validate.py", line 5, in
import flask
File "/usr/local/lib/python3.8/dist-packages/flask/init.py", line 4, in
from . import json as json
File "/usr/local/lib/python3.8/dist-packages/flask/json/init.py", line 8, in
from ..globals import current_app
File "/usr/local/lib/python3.8/dist-packages/flask/globals.py", line 56, in
app_ctx: "AppContext" = LocalProxy( # type: ignore[assignment]
TypeError: init() got an unexpected keyword argument 'unbound_message'
[2022-08-08 11:24:34 +0200] [8] [INFO] Worker exiting (pid: 8)
[2022-08-08 11:24:34 +0200] [9] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/app/index.py", line 1, in
import dash_bootstrap_components as dbc
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/init.py", line 5, in
from dash_bootstrap_components import _components, icons, themes
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/_components/init.py", line 1, in
from .Accordion import Accordion
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/_components/Accordion.py", line 3, in
from dash.development.base_component import Component, _explicitize_args
File "/usr/local/lib/python3.8/dist-packages/dash/init.py", line 5, in
from .dependencies import ( # noqa: F401,E402
File "/usr/local/lib/python3.8/dist-packages/dash/dependencies.py", line 4, in
from ._validate import validate_callback
File "/usr/local/lib/python3.8/dist-packages/dash/_validate.py", line 5, in
import flask
File "/usr/local/lib/python3.8/dist-packages/flask/init.py", line 4, in
from . import json as json
File "/usr/local/lib/python3.8/dist-packages/flask/json/init.py", line 8, in
from ..globals import current_app
File "/usr/local/lib/python3.8/dist-packages/flask/globals.py", line 56, in
app_ctx: "AppContext" = LocalProxy( # type: ignore[assignment]
TypeError: init() got an unexpected keyword argument 'unbound_message'
[2022-08-08 11:24:34 +0200] [9] [INFO] Worker exiting (pid: 9)
[2022-08-08 11:24:34 +0200] [10] [ERROR] Exception in worker process
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker
worker.init_process()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 119, in init_process
self.load_wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/workers/base.py", line 144, in load_wsgi
self.wsgi = self.app.wsgi()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/base.py", line 67, in wsgi
self.callable = self.load()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 49, in load
return self.load_wsgiapp()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/app/wsgiapp.py", line 39, in load_wsgiapp
return util.import_app(self.app_uri)
File "/usr/local/lib/python3.8/dist-packages/gunicorn/util.py", line 358, in import_app
mod = importlib.import_module(module)
File "/usr/lib/python3.8/importlib/init.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1014, in _gcd_import
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "", line 848, in exec_module
File "", line 219, in _call_with_frames_removed
File "/app/index.py", line 1, in
import dash_bootstrap_components as dbc
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/init.py", line 5, in
from dash_bootstrap_components import _components, icons, themes
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/_components/init.py", line 1, in
from .Accordion import Accordion
File "/usr/local/lib/python3.8/dist-packages/dash_bootstrap_components/_components/Accordion.py", line 3, in
from dash.development.base_component import Component, _explicitize_args
File "/usr/local/lib/python3.8/dist-packages/dash/init.py", line 5, in
from .dependencies import ( # noqa: F401,E402
File "/usr/local/lib/python3.8/dist-packages/dash/dependencies.py", line 4, in
from ._validate import validate_callback
File "/usr/local/lib/python3.8/dist-packages/dash/_validate.py", line 5, in
import flask
File "/usr/local/lib/python3.8/dist-packages/flask/init.py", line 4, in
from . import json as json
File "/usr/local/lib/python3.8/dist-packages/flask/json/init.py", line 8, in
from ..globals import current_app
File "/usr/local/lib/python3.8/dist-packages/flask/globals.py", line 56, in
app_ctx: "AppContext" = LocalProxy( # type: ignore[assignment]
TypeError: init() got an unexpected keyword argument 'unbound_message'
[2022-08-08 11:24:34 +0200] [10] [INFO] Worker exiting (pid: 10)
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 202, in run
self.manage_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 545, in manage_workers
self.spawn_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 617, in spawn_workers
time.sleep(0.1 * random.random())
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 242, in handle_chld
self.reap_workers()
File "/usr/local/lib/python3.8/dist-packages/gunicorn/arbiter.py", line 525, in reap_workers
raise HaltServer(reason, self.WORKER_BOOT_ERROR)
gunicorn.errors.HaltServer: <HaltServer 'Worker failed to boot.' 3>
Expected behavior
Starting of the server and listening to port in localhost.
Thank you very much for the help!
The text was updated successfully, but these errors were encountered: