apache / superset

Apache Superset is a Data Visualization and Data Exploration Platform
https://superset.apache.org/
Apache License 2.0
62.46k stars 13.73k forks source link

werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server #20319

Open khanh78180 opened 2 years ago

khanh78180 commented 2 years ago

A clear and concise description of what the bug is.

How to reproduce the bug

  1. Go to '.Data ..'
  2. Click on '.Databases...'
  3. Scroll down to '....' Trying to list database
  4. See error perset_app | 81.220.237.14 - - [08/Jun/2022:20:04:52 +0000] "GET /static/assets/images/filter-results.svg HTTP/1.1" 404 0 "https://superset.kdinh.fr/databaseview/list/?pageIndex=0&sortColumn=expose_in_sqllab&sortOrder=desc" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0" superset_app | 81.220.237.14 - - [08/Jun/2022:20:04:54 +0000] "GET /api/v1/database/?q=(order_column:expose_in_sqllab,order_direction:asc,page:0,page_size:25) HTTP/1.1" 200 529 "https://superset.kdinh.fr/databaseview/list/?pageIndex=0&sortColumn=expose_in_sqllab&sortOrder=asc" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0" superset_app | HTTPException superset_app | Traceback (most recent call last): superset_app | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request superset_app | rv = self.dispatch_request() superset_app | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request superset_app | return self.ensure_sync(self.view_functions[rule.endpoint])(req.view_args) superset_app | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 515, in superset_app | view_func=lambda kw: self_ref().send_static_file(kw), # type: ignore # noqa: B950 superset_app | File "/usr/local/lib/python3.8/site-packages/flask/scaffold.py", line 332, in send_static_file superset_app | return send_from_directory( superset_app | File "/usr/local/lib/python3.8/site-packages/flask/helpers.py", line 700, in send_from_directory superset_app | return werkzeug.utils.send_from_directory( # type: ignore superset_app | File "/usr/local/lib/python3.8/site-packages/werkzeug/utils.py", line 847, in send_from_directory superset_app | raise NotFound() superset_app | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again. superset_app | 2022-06-08 20:04:54,173:WARNING:superset.views.base:HTTPException superset_app | Traceback (most recent call last): superset_app | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request superset_app | rv = self.dispatch_request() superset_app | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1502, in dispatch_request superset_app | return self.ensure_sync(self.view_functions[rule.endpoint])(req.view_args) superset_app | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 515, in superset_app | view_func=lambda kw: self_ref().send_static_file(kw), # type: ignore # noqa: B950 superset_app | File "/usr/local/lib/python3.8/site-packages/flask/scaffold.py", line 332, in send_static_file superset_app | return send_from_directory( superset_app | File "/usr/local/lib/python3.8/site-packages/flask/helpers.py", line 700, in send_from_directory superset_app | return werkzeug.utils.send_from_directory( # type: ignore superset_app | File "/usr/local/lib/python3.8/site-packages/werkzeug/utils.py", line 847, in send_from_directory superset_app | raise NotFound() superset_app | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

Expected results

what you expected to happen. It should list database defined

Actual results

no databases listed what actually happens.

Screenshots

If applicable, add screenshots to help explain your problem.

Environment

(please complete the following information):

Checklist

Make sure to follow these steps before submitting your issue - thank you!

Additional context

Add any other context about the problem here.

Always-prog commented 2 years ago

I have the same error. Every-single request raises that exception. Due to this exception I can't login, can't logout.

I have changed config.py and superset_config.py, and running my flask server at my local from docker-compose.yml/

image

UPDATE: I fixed my problem about login/logout. In config.py I wa set SESSION_COOKIE_SAMESITE to Lax, instead of None.

But, warnings from werkzeug I getting anyway.

khanh78180 commented 2 years ago

Hi,

Thank a lot I change the parameter SESSION_COOKIE_SAMESITE and it is OK now

JunTech commented 2 years ago

i tried to change features SESSION_COOKIE_SAMESITE to Lax,but not work,it still cause error not found. GET /ws HTTP/1.1[/home/ryan/anaconda3/envs/superset/lib/python3.8/site-packages/werkzeug/routing.py>>>path_info:[/ws],>>>[None]]>>>[True]>>>[None]>>>[None] [/home/ryan/anaconda3/envs/superset/lib/python3.8/site-packages/werkzeug/routing.py>>>path:[|/ws]] 2022-07-22 09:28:35,152:WARNING:superset.views.base:HTTPException Traceback (most recent call last): File "/home/ryan/anaconda3/envs/superset/lib/python3.8/site-packages/flask/app.py", line 1516, in full_dispatch_request rv = self.dispatch_request() File "/home/ryan/anaconda3/envs/superset/lib/python3.8/site-packages/flask/app.py", line 1492, in dispatch_request self.raise_routing_exception(req) File "/home/ryan/anaconda3/envs/superset/lib/python3.8/site-packages/flask/app.py", line 1474, in raise_routing_exception raise request.routing_exception # type: ignore File "/home/ryan/anaconda3/envs/superset/lib/python3.8/site-packages/flask/ctx.py", line 376, in match_request result = self.url_adapter.match(return_rule=True) # type: ignore File "/home/ryan/anaconda3/envs/superset/lib/python3.8/site-packages/werkzeug/routing.py", line 2048, in match raise NotFound()

akzarma commented 2 years ago

SESSION_COOKIE_SAMESITE was set to "Lax" for me, setting it to None worked for me.

sagar-appperfect commented 1 year ago

Hi We are facing same issue, these are the steps that we followed

  1. Clone Superset's GitHub repository git clone https://github.com/apache/superset.git
  2. Updated config.py # Uncomment to setup Public role name, no authentication needed AUTH_ROLE_PUBLIC = 'Public'
  3. Docker compose (tried it with dev) DEV docker compose build docker-compose up -d

I have tried to set SESSION_COOKIE_SAMESITE=None but issue is same. Please let me know if I am missing something, any help would be appreciated. Thanks

eghazal-b-yond-full commented 1 year ago

Having the same issue here, regardless of the value of SESSION_COOKIE_SAMESITE, "Lax" or None, I'm still facing the same issue.

falgunifb commented 1 year ago

Facing same as mentioned by @eghazal-b-yond-full

kokiers commented 1 year ago

Having the same issue here, regardless of the value of SESSION_COOKIE_SAMESITE, "Lax" or None, I'm still facing the same issue.

I too

apole commented 1 year ago

Login works but get this error and I am logged out immediately. These are logs on superset. Anyone found the fix?

image

This is my superset_config.py image

mdmatin4 commented 1 year ago

Login works but get this error and I am logged out immediately. These are logs on superset. Anyone found the fix?

Change the SESSION_COOKIE_HTTPONLY value in your superset_config.py file to True. SESSION_COOKIE_HTTPONLY = True

It'll solve the login issue. But the main issue will still remain same.

zhengcan commented 1 year ago

Any process here?

hsravidatta commented 1 year ago

it is the same issue "There was an error loading the tables"

xddpool commented 1 year ago

I encountered the same issue. I deployed Superset on a server using Docker Compose. Accessing localhost on the server interface works fine, but when I try to access it via the IP address, it keeps showing the login page and the browser continuously redirects. The server console shows a 404 error and the same errors as before. I haven't found a solution yet. Later, I tried it on my Mac, and the result was the same. If I try to access it via the IP address on another computer, it stays on the login page indefinitely.

dmitry-novoselov commented 1 year ago

If I try to access it via the IP address on another computer, it stays on the login page indefinitely.

I am having the same issue.

texnder commented 1 year ago

i'm facing same issue.

File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1770, in raise_routing_exception superset_app | raise request.routing_exception # type: ignore superset_app | File "/usr/local/lib/python3.9/site-packages/flask/ctx.py", line 351, in match_request superset_app | result = self.url_adapter.match(return_rule=True) # type: ignore superset_app | File "/usr/local/lib/python3.9/site-packages/werkzeug/routing/map.py", line 652, in match superset_app | raise NotFound() from None superset_app | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

also in browser console i got:

Refused to load the script '' because it violates the following Content Security Policy directive: "script-src 'self' 'strict-dynamic' 'nonce-ikm_zo32ANd93_gYSIMQvGbEeCkSoVmQ'". Note that 'strict-dynamic' is present, so host-based allowlisting is disabled. Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.

why is this? can anyone knows the trick. this issue cost me a lot. please, any urgent solution.

sherlock30 commented 1 year ago

Any resolution yet?. I'm facing the same issue

sherlock30 commented 1 year ago

Solved. This problem occurs due to static files not getting loaded while loading the dashboard. Missed due to cluttered documentation

cd ~/superset/superset-frontend/ npm install npm run build

bui-theanh commented 1 year ago

hello,I'm having the same problem too.How did you handle it?

ramrajneogrowth commented 1 year ago

apache/superset:2.1.0 This version of the image is fine. Latest image has some problem that causes this issue intermittently.

andreiaionitoaie commented 1 year ago

Any solutions around this? I tried everything and I have same issue

Ingmarman commented 1 year ago

facing same issue

HTTPException Traceback (most recent call last): File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request rv = self.dispatch_request() File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1788, in dispatch_request self.raise_routing_exception(req) File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1770, in raise_routing_exception raise request.routing_exception # type: ignore File "/usr/local/lib/python3.9/site-packages/flask/ctx.py", line 351, in match_request result = self.url_adapter.match(return_rule=True) # type: ignore File "/usr/local/lib/python3.9/site-packages/werkzeug/routing/map.py", line 652, in match raise NotFound() from None werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

Python 3.9.17 Flask 2.2.5 Werkzeug 2.3.3

Superset 3.0.0

jaihind213 commented 1 year ago

on mac m1:

faced the same exception which was giving me a bad rendering:

2023-09-29 11:26:34,361:WARNING:superset.views.base:HTTPException
superset_app           | Traceback (most recent call last):
superset_app           |   File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
superset_app           |     rv = self.dispatch_request()
superset_app           |   File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1788, in dispatch_request
superset_app           |     self.raise_routing_exception(req)
superset_app           |   File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1770, in raise_routing_exception
superset_app           |     raise request.routing_exception  # type: ignore
superset_app           |   File "/usr/local/lib/python3.9/site-packages/flask/ctx.py", line 351, in match_request
superset_app           |     result = self.url_adapter.match(return_rule=True)  # type: ignore
superset_app           |   File "/usr/local/lib/python3.9/site-packages/werkzeug/routing/map.py", line 652, in match
superset_app           |     raise NotFound() from None
superset_app           | werkzeug.exceptions.NotFound: 404 Not Found: The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

I did the following and it worked for me:

git clone https://github.com/apache/superset
#installed node npm with versions v18.16.0/ 9.5.1 respectively.
cd superset/superset-frontend
npm install cross-env
npm install -f --no-optional --global webpack webpack-cli; 
npm run build
cd -
#create virtual env of 3.9 and activate
mamba create -n superset python=3.9 ; mamba activate superset; 
pip install -r requirements/testing.txt;
pip install -e .;
superset db upgrade;
superset fab create-admin;
superset init;
superset load-examples;
export SUPERSET_SECRET_KEY=D1acauGDSStiNuu2O1ZmK9E59QUPkRfB_some_key
export TALISMAN_ENABLED="False"
FLASK_ENV=development superset run -p 8088 --with-threads --reload --debugger

hope this helps.

vndroid commented 1 year ago

I'm facing the same issue. I installed it through the official Scratch method.

cbrianbet commented 1 year ago

Any help please

cloudcheflabs commented 1 year ago

As @jaihind213 said, set env TALISMAN_ENABLED to FALSE works fine for me.

jiayouchongmingniao commented 10 months ago

export TALISMAN_ENABLED="False" SESSION_COOKIE_SAMESITE, Lax/None/Strict

doesn't work for me

jiayouchongmingniao commented 10 months ago

sudo docker compose -f docker-compose-non-dev.yml up

problem solved

jiayouchongmingniao commented 10 months ago

1702824892472

butuzov commented 8 months ago

For thouse who still strugling with not found endpoint for /ws, prese check your setup.

If you deleted nginx for running at :80 (as I did) you will get this error message, since websocket endpoint is running from the service superset_websocker. So in order to make it working (If you are using this with in docker-compose)

1) you must have nginx (:80) serving both superset_app (:8088) and superset_websocket (:8080) 2) I have also changed SESSION_COOKIE_HTTPONLY to None (but, I am not sure if this effects setup at all)

cheers.

tmnvanderberg commented 7 months ago

Having the same issue...

sandeepr43 commented 4 months ago

Still having this issue ...werkzeug exception always pops up in my superset.log

rusackas commented 4 months ago

Just for fun, I'm curious what @dosu-bot thinks.

dosubot[bot] commented 4 months ago

Hey @rusackas! 👋 I'm here to help you out while you wait for a human maintainer. I can assist with bug fixes, answer questions, and guide you on becoming a contributor. Let's tackle this together!

To resolve the persistent werkzeug.exceptions.NotFound: 404 Not Found error in your Superset setup, which affects listing databases and login/logout functionality, you can try the following steps:

  1. Check Route Definitions and Methods: Ensure that the routes for listing databases and login/logout are correctly defined and accessible. For example, the DatabaseRestApi class should have the necessary routes exposed.

  2. Verify Permissions: Ensure that the necessary permissions are set for accessing these routes. The protect() decorator is used to enforce security.

  3. Static File Serving: Ensure that static files are correctly served. This involves setting the correct paths and URLs in your configuration files. For example:

    UPLOAD_FOLDER = BASE_DIR + "/app/static/uploads/"
    IMG_UPLOAD_FOLDER = BASE_DIR + "/app/static/uploads/"
    IMG_UPLOAD_URL = "/static/uploads/"
  4. Nginx Configuration: If you are using Nginx as a reverse proxy, ensure that it is correctly configured to serve static files and handle WebSocket connections. Here is an example configuration snippet:

    server {
       listen 80 default_server;
       server_name  _;
    
       location /ws {
           proxy_pass http://superset_websocket;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection "Upgrade";
           proxy_set_header Host $host;
       }
    
       location / {
           proxy_pass http://superset_app;
           proxy_set_header    Host                $host;
           proxy_set_header    X-Real-IP           $remote_addr;
           proxy_set_header    X-Forwarded-For     $remote_addr;
           proxy_set_header    X-Forwarded-Host    $host;
           proxy_set_header    X-Forwarded-Proto   $scheme;
           proxy_http_version 1.1;
           port_in_redirect off;
           proxy_connect_timeout 300;
       }
    }
  5. Frontend Setup: Ensure that the frontend is correctly built and served. You can do this by running the following commands:

    cd superset/superset-frontend
    npm install
    npm run build
  6. Environment Variables: Set the TALISMAN_ENABLED environment variable to False:

    export TALISMAN_ENABLED="False"
  7. Docker Configuration: If you are using Docker, try using the non-dev Docker Compose configuration:

    docker-compose -f docker-compose-non-dev.yml up

These steps should help resolve the 404 Not Found error and ensure that your Superset setup functions correctly [1][2][3][4].

To continue talking to Dosu, mention @dosu.

alivalizadakaseya commented 2 months ago

Having the same issue, it is sad that this issue has been persistent for so long :(

sandeepr43 commented 1 month ago

+1 Having the same issue :(

khushal786 commented 1 week ago

anything mention above is also not working for me too. I am also facing the same issue