feat: dashboard playground tab connection failure #850
Conversation
✅ Deploy Preview for vllm-semantic-router ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
👥 vLLM Semantic Team NotificationThe following members have been identified for the changed files in this PR and have been automatically assigned: 📁
|
ada9a66 to
9b77f26
Compare
9b77f26 to
ca92613
Compare
57bc547 to
61341a1
Compare
|
@liavweiss Great work on this PR. The proxy-based approach is solid and I really like the direction you took here. Since this is mainly intended to work with the openwebui, it would be great to test it against the If you hit any issues or need help testing or wiring things together, feel free to reach out. Happy to help. |
Signed-off-by: Liav Weiss <lweiss@lweiss-thinkpadx1carbongen11.raanaii.csb>
61341a1 to
523433b
Compare
|
Hey @samzong, I tested the backend proxy approach with the all-in-one stack setup from PR #845, and it works! ✅ The Playground tab loads OpenWebUI correctly through the PR is ready |

Fix bug: Dashboard Playground Tab Connection Failure
#849
Fixes the Playground tab connection issue where OpenWebUI fails to load, showing "localhost refused to connect" error. The fix ensures the Playground tab uses the backend proxy route instead of constructing direct URLs, enabling proper static asset loading and API routing.
Problem
The Playground tab was attempting to connect directly to OpenWebUI by constructing URLs based on hostname patterns (e.g., replacing 'dashboard' with 'openwebui'). This approach had several issues:
/static/,/_app/) were not being proxied, resulting in 404 errors/api/config) were not routed correctlySolution
Frontend Changes
PlaygroundPage.tsxto use the backend proxy route/embedded/openwebui/instead of constructing direct URLsBackend Changes
Added OpenWebUI static asset handlers:
/static/handler with referer-based routing to handle conflicts between Jaeger and OpenWebUI (both use/static/)/_app/handler with referer-based routing to handle conflicts between OpenWebUI and ChatUI (both use/_app/)Added OpenWebUI API routing:
/api/router to prioritize OpenWebUI API endpoints (/api/config) based on path patterns or referer header/api/configis used for OpenWebUI configurationAdded X-Forwarded- headers*:
X-Forwarded-Host,X-Forwarded-Proto, andX-Forwarded-Forheaders in the proxyUpdated static file server:
/static/to the exclusion list to prevent the static file server from attempting to serve proxy routesChanges Made
Files Modified
dashboard/frontend/src/pages/PlaygroundPage.tsx- Changed iframe src to use backend proxy routedashboard/backend/router/router.go- Added OpenWebUI static asset handlers and API routingdashboard/backend/proxy/proxy.go- Added X-Forwarded-* headers for backend detectiondashboard/backend/handlers/static.go- Added/static/to exclusion listTesting
✅ Verified the fix works:
quickstart.shscript✅ Tested compatibility:
/static/assets still work correctly (referer-based routing)/_app/assets still work correctly (referer-based routing)