What is the default limit set for requests per minute/second #35646
Replies: 2 comments
-
The default rate limit in Superset 5.0.0 is 50 requests per second for the application and 5 per second for authentication endpoints. These are set in the config file as When a user accesses a dashboard, Superset makes separate API requests for each chart on the dashboard, plus additional requests for dashboard metadata and datasets. For example, a dashboard with 10 charts will typically generate at least 10 chart data requests, plus a few more for dashboard and dataset info. The actual number can be higher if there are filters or interactive elements, and each user session will trigger its own set of requests. For dashboards with many charts or high concurrency, the number of requests can quickly exceed the default rate limit, especially during load testing or with multiple users see discussion. To fix the 429 error, increase the If you need distributed rate limiting (across multiple Superset instances), configure To reply, just mention @dosu. How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other |
Beta Was this translation helpful? Give feedback.
-
The default global rate limit in Superset 5.0.0 is set to 50 requests per second, controlled by the When a user accesses a dashboard, Superset typically sends one API request per chart (slice) on the dashboard, plus additional requests for metadata and annotations if present. For a dashboard with 10 charts, expect at least 10 concurrent requests, and more if there are filters or annotation layers. Complex dashboards can quickly approach or exceed the default rate limit, especially with multiple users or automated load testing. See the chart loading logic here and here. For a medium-sized workload (for example, 10–50 users and dashboards with 10–20 charts), you may need to set the rate limit significantly higher than the default, depending on your expected concurrency and dashboard complexity. It's best to monitor your actual request volume during peak usage and tune the rate limit accordingly. Always test changes in a staging environment before applying them to production. To reply, just mention @dosu. How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Bug description
I am running load testing on superset using k6 operator. I am testing with 5 concurrent users and getting logs as "Traceback (most recent call last):
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1160, in _check_request_limit
raise e
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1157, in _check_request_limit
self.__evaluate_limits(endpoint, all_limits)
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1141, in __evaluate_limits
raise RateLimitExceeded(
flask_limiter.errors.RateLimitExceeded: 429 Too Many Requests: 50 per 1 second
2025-10-14 05:38:03,787:WARNING:superset.views.error_handling:HTTPException
Traceback (most recent call last):
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1160, in _check_request_limit
raise e
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1157, in _check_request_limit
self.__evaluate_limits(endpoint, all_limits)
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1141, in __evaluate_limits
raise RateLimitExceeded(
flask_limiter.errors.RateLimitExceeded: 429 Too Many Requests: 50 per 1 second
2025-10-14 05:38:03,826:INFO:flask-limiter:ratelimit 50 per 1 second (10.40.22.127) exceeded at endpoint: global
2025-10-14 05:38:03,826:WARNING:superset.views.error_handling:HTTPException
Traceback (most recent call last):
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1160, in _check_request_limit
raise e
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1157, in _check_request_limit
self.__evaluate_limits(endpoint, all_limits)
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1141, in __evaluate_limits
raise RateLimitExceeded(
flask_limiter.errors.RateLimitExceeded: 429 Too Many Requests: 50 per 1 second
2025-10-14 05:38:03,829:INFO:flask-limiter:ratelimit 50 per 1 second (10.40.22.127) exceeded at endpoint: global
2025-10-14 05:38:03,829:INFO:flask-limiter:ratelimit 50 per 1 second (10.40.22.127) exceeded at endpoint: global
2025-10-14 05:38:03,829:INFO:flask-limiter:ratelimit 50 per 1 second (10.40.22.127) exceeded at endpoint: global
2025-10-14 05:38:03,829:INFO:flask-limiter:ratelimit 50 per 1 second (10.40.22.127) exceeded at endpoint: global
2025-10-14 05:38:03,829:WARNING:superset.views.error_handling:HTTPException
Traceback (most recent call last):
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1482, in full_dispatch_request
rv = self.preprocess_request()
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask/app.py", line 1974, in preprocess_request
rv = self.ensure_sync(before_func)()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1160, in _check_request_limit
raise e
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1157, in _check_request_limit
self.__evaluate_limits(endpoint, all_limits)
File "/app/.venv/lib/python3.11/site-packages/flask_limiter/extension.py", line 1141, in __evaluate_limits
raise RateLimitExceeded(
flask_limiter.errors.RateLimitExceeded: 429 Too Many Requests: 50 per 1 second
2025-10-14 05:38:03,829:WARNING:superset.views.error_handling:HTTPException" What is the default limit set for requests per minute/second, and how many requests are expected for a medium-sized workload? How can I fix the above error? How many requests will be generated if a user accesses a dashboard?
Screenshots/recordings
No response
Superset version
5.0.0
Python version
3.11
Node version
18 or greater
Browser
Chrome
Additional context
No response
Checklist
Beta Was this translation helpful? Give feedback.
All reactions