You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is a confirmed bug caused by PR #37537, which wrapped the backend-provided user_logout_url with ensureAppRoot() in RightMenu.tsx. Since the backend's appbuilder.get_url_for_logout already includes the app root in the URL, the frontend wrapping adds it a second time — resulting in /superset/superset/logout/[1].
PR #38033 fixes this by removing the redundant ensureAppRoot() call [2]. It has been tested by multiple users and is awaiting merge.
Workaround — in superset-frontend/src/features/home/RightMenu.tsx, change:
This is part of a broader pattern where several URLs (logout, SQL Lab, logo) get double-prefixed because both the backend middleware and frontend utility functions independently prepend app_root[3].
This is already fixed on master. PR #38033 removed the redundant ensureAppRoot() wrap around user_logout_url in RightMenu.tsx (that's what was double-prefixing the logout link), and PR #39925 added a regression test for exactly this case (Logout link href is single-prefixed under subdirectory deployment in RightMenu.test.tsx), which passes on current master. Closing since there's nothing left to fix here.
The master fix is confirmed, but this still ships broken on the release branches. #38033's RightMenu.tsx change isn't on origin/6.2, which is unreleased and still has href={ensureAppRoot(navbarRight.user_logout_url)} — so 6.2.0 will ship the same double-prefixed logout that 6.1.0 did.
Verified by checking out each ref and evaluating the shipped ensureAppRoot body against the values menu_data emits (user_logout_url = appbuilder.get_url_for_logout, already SCRIPT_NAME-prefixed by Flask's url_for):
#38033 has no milestone or cherry-pick label, so this doesn't look queued. Could the one-line RightMenu.tsx hunk be cherry-picked to 6.2 before release? The ensureAppRoot idempotence guard is also master-only, so the RightMenu.tsx line alone is the minimal safe backport. Happy to open the cherry-pick PR.
Opened #42848 with the one-line RightMenu.tsx backport to 6.2, plus the regression test from #39925. Happy to raise the equivalent against 6.1 if that branch will see another release.
Activity
dosubot commentedon Jun 1, 2026
This is a confirmed bug caused by PR #37537, which wrapped the backend-provided
user_logout_urlwithensureAppRoot()inRightMenu.tsx. Since the backend'sappbuilder.get_url_for_logoutalready includes the app root in the URL, the frontend wrapping adds it a second time — resulting in/superset/superset/logout/[1].PR #38033 fixes this by removing the redundant
ensureAppRoot()call [2]. It has been tested by multiple users and is awaiting merge.Workaround — in
superset-frontend/src/features/home/RightMenu.tsx, change:This is part of a broader pattern where several URLs (logout, SQL Lab, logo) get double-prefixed because both the backend middleware and frontend utility functions independently prepend
app_root[3].To reply, just mention @dosu.
Share context across your team and agents. Try Dosu.
rusackas commentedon Aug 3, 2026
This is already fixed on
master. PR #38033 removed the redundantensureAppRoot()wrap arounduser_logout_urlinRightMenu.tsx(that's what was double-prefixing the logout link), and PR #39925 added a regression test for exactly this case (Logout link href is single-prefixed under subdirectory deploymentinRightMenu.test.tsx), which passes on currentmaster. Closing since there's nothing left to fix here.Tamayi commentedon Aug 6, 2026
The
masterfix is confirmed, but this still ships broken on the release branches. #38033'sRightMenu.tsxchange isn't onorigin/6.2, which is unreleased and still hashref={ensureAppRoot(navbarRight.user_logout_url)}— so 6.2.0 will ship the same double-prefixed logout that 6.1.0 did.Verified by checking out each ref and evaluating the shipped
ensureAppRootbody against the valuesmenu_dataemits (user_logout_url=appbuilder.get_url_for_logout, already SCRIPT_NAME-prefixed by Flask'surl_for):#38033 has no milestone or cherry-pick label, so this doesn't look queued. Could the one-line
RightMenu.tsxhunk be cherry-picked to6.2before release? TheensureAppRootidempotence guard is also master-only, so theRightMenu.tsxline alone is the minimal safe backport. Happy to open the cherry-pick PR.TamayiM-WHO commentedon Aug 6, 2026
Opened #42848 with the one-line
RightMenu.tsxbackport to6.2, plus the regression test from #39925. Happy to raise the equivalent against6.1if that branch will see another release.