Willem Jiang
b5108e3520
fix(auth): replace setup-status 429 rate limit with cached response ( #2915 )
...
* fix(auth): replace setup-status 429 rate limit with cached response
The /api/v1/auth/setup-status endpoint had a 60-second cooldown that
returned HTTP 429 for all but the first request per IP. When the service
restarted with multiple browser tabs open, all tabs hit this endpoint
simultaneously from the same source IP, causing a storm of 429 errors
that blocked the login flow.
Replace the cooldown-with-429 model with a per-IP response cache that
returns the previously computed result within the TTL. The database
query (count_admin_users) still only runs once per IP per 60 seconds,
preserving the original performance goal while eliminating spurious
429 errors on multi-tab reconnection.
Fixes #2902
* fix(auth): address setup-status cache review issues
Agent-Logs-Url: https://github.com/bytedance/deer-flow/sessions/439a0e8c-8b64-41d4-a3cd-fe9a00eec534
Co-authored-by: WillemJiang <219644+WillemJiang@users.noreply.github.com>
* test(auth): improve readability of setup-status concurrency assertion
Agent-Logs-Url: https://github.com/bytedance/deer-flow/sessions/439a0e8c-8b64-41d4-a3cd-fe9a00eec534
Co-authored-by: WillemJiang <219644+WillemJiang@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
* fix the unit test error
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <223894421+github-code-quality[bot]@users.noreply.github.com>
2026-05-18 22:07:01 +08:00
..
2026-05-13 23:56:06 +08:00
2026-05-12 23:18:54 +08:00
2026-04-26 15:09:25 +08:00
2026-05-13 23:56:06 +08:00
2026-03-27 20:03:30 +08:00
2026-04-30 11:40:28 +08:00
2026-05-17 15:23:42 +08:00
2026-05-01 22:27:02 +08:00
2026-05-06 10:17:55 +08:00
2026-05-15 22:15:58 +08:00
2026-05-16 09:24:40 +08:00
2026-04-26 11:08:11 +08:00
2026-04-26 22:20:57 +08:00
2026-04-26 11:08:11 +08:00
2026-04-28 11:34:07 +08:00
2026-05-13 23:56:06 +08:00
2026-05-13 23:56:06 +08:00
2026-05-02 15:19:28 +08:00
2026-05-15 22:30:05 +08:00
2026-04-14 10:29:44 +08:00
2026-04-26 11:09:55 +08:00
2026-05-09 09:49:08 +08:00
2026-04-19 22:00:58 +08:00
2026-03-30 07:41:18 +08:00
2026-04-25 19:40:06 +08:00
2026-04-07 18:21:22 +08:00
2026-05-01 22:19:50 +08:00
2026-03-29 21:03:58 +08:00
2026-05-04 09:56:16 +08:00
2026-05-04 09:56:16 +08:00
2026-05-02 15:04:11 +08:00
2026-03-14 22:55:52 +08:00
2026-04-26 11:05:47 +08:00
2026-03-29 15:31:18 +08:00
2026-05-07 16:15:15 +08:00
2026-05-07 16:15:15 +08:00
2026-05-09 09:27:02 +08:00
2026-05-05 23:17:42 +08:00
2026-05-15 22:09:04 +08:00
2026-05-13 23:45:47 +08:00
2026-05-13 23:45:47 +08:00
2026-05-10 22:28:29 +08:00
2026-05-10 22:28:29 +08:00
2026-04-30 11:25:33 +08:00
2026-04-11 17:48:04 +08:00
2026-03-31 22:19:27 +08:00
2026-04-10 17:43:39 +08:00
2026-05-09 19:39:36 +08:00
2026-04-26 11:09:56 +08:00
2026-04-08 17:13:39 +08:00
2026-04-26 11:09:55 +08:00
2026-04-06 22:14:12 +08:00
2026-04-18 22:47:42 +08:00
2026-04-10 17:43:39 +08:00
2026-04-28 00:13:04 +08:00
2026-05-11 17:38:37 +08:00
2026-04-23 19:41:26 +08:00
2026-05-11 17:38:37 +08:00
2026-05-09 19:43:50 +08:00
2026-03-23 18:07:33 +08:00
2026-03-14 22:55:52 +08:00
2026-03-26 14:20:18 +08:00
2026-05-18 22:07:01 +08:00
2026-05-02 06:37:49 +08:00
2026-04-24 16:00:14 +08:00
2026-04-28 11:34:07 +08:00
2026-05-07 16:15:15 +08:00
2026-05-07 08:34:43 +08:00
2026-05-07 08:34:43 +08:00
2026-04-30 12:41:09 +08:00
2026-04-11 16:52:10 +08:00
2026-05-08 10:13:11 +08:00
2026-05-11 07:42:15 +08:00
2026-05-17 08:26:04 +08:00
2026-05-01 13:23:26 +08:00
2026-04-30 22:27:14 +08:00
2026-05-07 16:15:15 +08:00
2026-05-07 16:15:15 +08:00
2026-03-14 22:55:52 +08:00
2026-04-25 09:18:13 +08:00
2026-03-14 22:55:52 +08:00
2026-05-11 22:14:13 +08:00
2026-04-03 11:21:58 +08:00
2026-05-15 10:26:35 +08:00
2026-05-15 10:26:35 +08:00
2026-04-26 11:13:01 +08:00
2026-04-26 15:09:25 +08:00
2026-04-17 12:00:31 +08:00
2026-04-26 11:09:55 +08:00
2026-04-26 15:09:25 +08:00
2026-04-30 17:59:57 +08:00
2026-04-14 15:01:06 +08:00
2026-05-05 23:17:42 +08:00
2026-05-15 22:30:05 +08:00
2026-03-22 20:39:26 +08:00
2026-04-26 11:05:47 +08:00
2026-04-26 11:09:55 +08:00
2026-04-09 16:07:16 +08:00
2026-03-20 17:18:59 +08:00
2026-03-26 15:07:05 +08:00
2026-05-05 23:17:42 +08:00
2026-05-09 09:49:08 +08:00
2026-04-26 11:13:01 +08:00
2026-04-10 20:40:30 +08:00
2026-05-17 15:23:42 +08:00
2026-03-14 22:55:52 +08:00
2026-03-14 22:55:52 +08:00
2026-05-17 15:23:42 +08:00
2026-04-26 15:09:25 +08:00
2026-05-15 10:32:09 +08:00
2026-05-11 19:54:00 +08:00
2026-05-17 20:03:21 +08:00
2026-05-13 15:49:34 +08:00
2026-05-02 11:25:45 +08:00
2026-04-26 15:09:25 +08:00
2026-05-03 23:40:59 +08:00
2026-04-07 17:15:24 +08:00
2026-04-09 17:21:23 +08:00
2026-04-09 17:21:23 +08:00
2026-04-18 08:46:59 +08:00
2026-04-28 12:18:41 +08:00
2026-05-17 08:59:42 +08:00
2026-03-30 16:02:23 +08:00
2026-03-26 14:20:18 +08:00
2026-05-02 16:22:35 +08:00
2026-05-12 23:18:54 +08:00
2026-05-12 23:18:54 +08:00
2026-05-09 19:43:50 +08:00
2026-05-10 22:00:57 +08:00
2026-05-01 13:23:26 +08:00
2026-03-25 16:28:33 +08:00
2026-04-23 14:06:14 +08:00
2026-05-01 13:23:26 +08:00
2026-05-01 13:23:26 +08:00
2026-05-03 23:40:59 +08:00
2026-05-07 08:34:43 +08:00
2026-05-07 08:34:43 +08:00
2026-03-30 16:02:23 +08:00
2026-04-06 14:51:10 +08:00
2026-05-11 09:59:06 +08:00
2026-05-08 10:08:53 +08:00
2026-04-23 23:59:47 +08:00
2026-05-02 06:37:49 +08:00
2026-04-12 16:40:21 +08:00
2026-05-10 22:47:30 +08:00
2026-04-28 14:53:18 +08:00
2026-05-15 10:26:35 +08:00
2026-05-13 23:52:19 +08:00
2026-03-26 17:39:16 +08:00
2026-05-12 23:21:22 +08:00
2026-04-26 15:09:25 +08:00
2026-05-09 19:40:32 +08:00
2026-05-12 23:21:22 +08:00
2026-03-14 22:55:52 +08:00
2026-05-15 22:30:05 +08:00
2026-05-15 22:12:37 +08:00
2026-05-10 22:00:57 +08:00
2026-05-13 23:52:19 +08:00
2026-03-26 14:20:18 +08:00
2026-05-10 23:09:03 +08:00
2026-05-13 23:45:47 +08:00
2026-05-01 22:21:10 +08:00
2026-04-06 15:09:57 +08:00
2026-04-24 22:45:41 +08:00
2026-04-02 13:06:10 +08:00
2026-04-02 13:06:10 +08:00
2026-05-12 23:18:54 +08:00
2026-05-05 23:17:42 +08:00
2026-05-09 18:21:54 +08:00
2026-04-26 11:13:01 +08:00
2026-05-09 18:02:40 +08:00
2026-04-26 15:09:25 +08:00
2026-05-02 15:16:16 +08:00
2026-04-15 23:54:30 +08:00
2026-04-28 11:13:17 +08:00
2026-04-06 15:18:34 +08:00
2026-04-10 20:49:28 +08:00