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
{{ message }}
Repository navigation
Instructor-dashboard tab of FeedbackXBlock no longer works with Verawood #62
changed the title [-]FeedbackXBlock no longer works with Verawood[/-][+]Instructor-dashboard tab of FeedbackXBlock no longer works with Verawood[/+]on Aug 20, 2026
@feanil Actually it's just agnatically created PR, we paused working on it for now.
Let us know if this is the priority over modernization work
It needs architectural learning curve to evaluate and review the code.
Here is the Gemini analysis for why the URL isn't working
▸ Thought for 22s, 2.6k tokens
The generated URL is indeed correct, following the expected pattern for instructor dashboard tabs. The "Page Not Found" error arises because the "feedback" tab lacks a corresponding route registration within the frontend application. This is because the tab isn't defined in defaultTabs or registered through the slot widget mechanism.
Yes, the URL in xblocks-extra is:
defaultTabs only contains core tabs (course_info, enrollments, grading, cohorts, etc.).
routeWidgets contains tabs registered into the slot org.openedx.frontend.slot.instructorDashboard.routes.v1.
Because feedback has no frontend widget registered in routeWidgets and is not in defaultTabs, foundTab is undefined, and it renders .
3. Confirmation in the git history
This is confirmed by the commit in xblocks-extra that originally introduced this filter (0c09016):
│ "feat: add Course Feedback tab to new instructor dashboard
│
│ Part 1 of 2: this adds the tab entry; rendering its content still requires a frontend route component registered in the org.openedx.frontend.slot.instructorDashboard.routes.v1 slot (follow-up)."
4. Could the URL point to a legacy page instead?
If the URL was intended to point to a legacy Django page:
• In InstructorNav.tsx:71-82, any URL starting with / (const isInternal = tab.url.startsWith('/')) is intercepted by React Router , which fails if not handled inside the MFE.
• Even if given an absolute URL (https://...), the legacy instructor dashboard endpoint in Verawood (instructor_dashboard_2) redirects back to the MFE unless the instructor.legacy_instructor_dashboard waffle flag is explicitly enabled.
The URL in xblocks-extra is the expected MFE route, but the frontend route slot registration for feedback is missing.
Activity
[-]FeedbackXBlock no longer works with Verawood[/-][+]Instructor-dashboard tab of FeedbackXBlock no longer works with Verawood[/+]mboisson commentedon Aug 20, 2026
@farhan any idea on this ?
farhan commentedon Aug 24, 2026
@mboisson Thanks for the heads-up, we'll look into it.
For context, here are a couple of earlier related PRs:
farhan commentedon Aug 28, 2026
fyi @mboisson @feanil @salman2013
#75
feanil commentedon Sep 1, 2026
It looks like Salman is doing an initial review. Please let me know if you need me to review it specifically or otherwise need help landing this.
farhan commentedon Sep 1, 2026
@feanil Actually it's just agnatically created PR, we paused working on it for now.
Let us know if this is the priority over modernization work
It needs architectural learning curve to evaluate and review the code.
mboisson commentedon Sep 28, 2026
any update on this ?
farhan commentedon Sep 29, 2026
@mboisson
aximprovementsteam didn't prioritize it yetfeel free to take over the PR, it also needs work on the FE side
mboisson commentedon Sep 29, 2026
For what it's worth, I tried #75, and while I may be missing something, it still did not add the tab back in the instructor dashboard.
mboisson commentedon Oct 13, 2026
I managed to modify the PR and add the Course Feedback tab. However, it tries to load
instructor-dashboard/<course ID>/feedback(because the URL was hardcoded by gemini) here main...calculquebec:xblocks-extra:fix_for_verawood#diff-3a72514214068cc20b07ac5179a31608e90e8fa5e0dbd046427693a36a789b1eR73which returns a page not found in the inside page.
Any idea what would be the correct URL to load ?
mboisson commentedon Oct 13, 2026
Here is the Gemini analysis for why the URL isn't working
▸ Thought for 22s, 2.6k tokens
The generated URL is indeed correct, following the expected pattern for instructor dashboard tabs. The "Page Not Found" error arises because the "feedback" tab lacks a corresponding route registration within the frontend application. This is because the tab isn't defined in
defaultTabsor registered through the slot widget mechanism.Yes, the URL in xblocks-extra is:
1. Is the URL format correct?
Yes. This matches how core Open edX tabs construct their URLs in serializers_v2.py:
• _build_tab_url('INSTRUCTOR_MICROFRONTEND_URL', course_key, 'grading') produces /instructor-dashboard/{course_key}/grading
• cohorts produces /instructor-dashboard/{course_key}/cohorts
• feedback produces /instructor-dashboard/{course_key}/feedback
2. Why does it result in "Page Not Found"?
In frontend-app-instructor-dashboard (routes.tsx:35-49), routing is handled entirely client-side by React Router:
When you click the tab:
3. Confirmation in the git history
This is confirmed by the commit in xblocks-extra that originally introduced this filter (0c09016):
│ "feat: add Course Feedback tab to new instructor dashboard
│
│ Part 1 of 2: this adds the tab entry; rendering its content still requires a frontend route component registered in the org.openedx.frontend.slot.instructorDashboard.routes.v1 slot (follow-up)."
4. Could the URL point to a legacy page instead?
If the URL was intended to point to a legacy Django page:
• In InstructorNav.tsx:71-82, any URL starting with / (const isInternal = tab.url.startsWith('/')) is intercepted by React Router , which fails if not handled inside the MFE.
• Even if given an absolute URL (https://...), the legacy instructor dashboard endpoint in Verawood (instructor_dashboard_2) redirects back to the MFE unless the instructor.legacy_instructor_dashboard waffle flag is explicitly enabled.
The URL in xblocks-extra is the expected MFE route, but the frontend route slot registration for feedback is missing.
mboisson commentedon Oct 13, 2026
Ok, I managed to implement the new tab. I used
f7a1f18
but I also had to inject a custom app to render the page, which I did through a plugin:
calculquebec/tutor-plugins@25e30a1
I am not sure how to combine the two into
xblocks-extra, but hopefully this is useful.