Skip to content

fix(openwebui): parse bracketed IPv6 bind addresses - #6106

Merged
qin-ctx merged 1 commit into
volcengine:mainfrom
ktz03:fix/openwebui-ipv6-bind
Oct 15, 2026
Merged

qin-ctx merged 1 commit into
volcengine:mainfrom
ktz03:fix/openwebui-ipv6-bind

Conversation

@ktz03

@ktz03 ktz03 commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Description

OV_BIND=[::1]:18765 currently parses as host [ and port 8765, so the OpenWebUI tool-server entrypoint exits before serving. Parse bracketed IPv6 listeners before the existing hostname/IPv4 fallback so Uvicorn receives ::1 and the configured port.

Human Involvement

  • A human participated in the implementation or review loop
  • This PR was generated entirely by AI agents without human participation in the loop

Related Issue

Fixes #6105

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Performance improvement
  • Test update

Changes Made

  • Share bracket-aware host/port splitting between the two existing settings properties.
  • Preserve hostname/IPv4 parsing and existing missing/invalid-port defaults.
  • Add configuration regressions and document the IPv6 bind syntax. The original OpenWebUI integration is from feat(examples): add OpenWebUI tool-server plugin (#1387) #2640.

Testing

  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have tested this on the following platforms:
    • Linux
    • macOS
    • Windows

New configuration tests: the unmodified production base has 7 failures and 10 normal passes; the fixed complete OpenWebUI plugin suite has 37 passed. Real local Uvicorn processes show the module's IPv6 failure on base and HTTP 200 after the fix, with IPv4 loopback/wildcard and direct-Uvicorn IPv6 controls passing. All temporary servers were stopped.

Ruff, format checks, wheel/sdist build, Twine, offline wheel installation, and installed configuration/entrypoint smoke pass. The wheel's seven package source modules match the tested source.

Checklist

  • My code follows the project's coding style
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published

Screenshots (if applicable)

Not applicable.

Additional Notes

Windows Python 3.12.14, Uvicorn 0.54.0 and cached dependencies. Validation covers local listeners and /health; no deployed OpenWebUI, actual OpenViking backend, live model, authentication, full server, minimum-version matrix, other OS or performance test. Existing license-metadata deprecation warnings remain. Main-server bind/retry logic and session-ID validation are outside this change.

@qin-ctx
qin-ctx merged commit c1d3ad9 into volcengine:main Oct 15, 2026
9 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in OpenViking project Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

[Bug]: OpenWebUI OV_BIND cannot parse bracketed IPv6 listeners

2 participants