{"record":{"id":"d177c5159ceff1a2","repo":"sgl-project/sglang","slug":"invalid-port-in-ipv6-address-port-str","errorCode":null,"errorMessage":"invalid port in IPv6 address: '{port_str}'","messagePattern":"invalid port in IPv6 address: '(.+?)'","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"python/sglang/multimodal_gen/runtime/utils/common.py","lineNumber":187,"sourceCode":"    if not is_valid_ipv6_address(host[1:end]):\n        raise ValueError(f\"invalid IPv6 address: {host}\")\n\n    port_str = None\n    if len(addr) > end + 1:\n        if addr[end + 1] == \":\":\n            port_str = addr[end + 2 :]\n        else:\n            raise ValueError(\"received IPv6 address format: expected ':' after ']'\")\n\n    if not port_str:\n        raise ValueError(\n            \"a port must be specified in IPv6 address (format: [ipv6]:port)\"\n        )\n\n    try:\n        port = int(port_str)\n    except ValueError:\n        raise ValueError(f\"invalid port in IPv6 address: '{port_str}'\")\n    return port, host\n\n\ndef is_port_available(port):\n    \"\"\"Return whether a port is available.\"\"\"\n    with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:\n        try:\n            s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n            s.bind((\"\", port))\n            s.listen(1)\n            return True\n        except socket.error:\n            return False\n        except OverflowError:\n            return False\n\n\ndef get_zmq_socket(","sourceCodeStart":169,"sourceCodeEnd":205,"githubUrl":"https://github.com/sgl-project/sglang/blob/0132848349585cfe6aae51c4941cbae872505f8a/python/sglang/multimodal_gen/runtime/utils/common.py#L169-L205","documentation":"Thrown by configure_ipv6 when int(port_str) fails, i.e. the text after ':' following the bracketed IPv6 address is not a valid integer port.","triggerScenarios":"Passing \"[fe80::1]:http\" or \"[fe80::1]:295OO\" (letter O instead of zero) as dist_init_addr.","commonSituations":"Service name instead of numeric port; OCR/typo characters in the port; trailing whitespace or units.","solutions":["Use a plain integer port: \"[fe80::1]:29500\"","Check for letter/digit typos (O vs 0, l vs 1) in the port"],"exampleFix":"# before\naddr = \"[fe80::1]:295OO\"\n# after\naddr = \"[fe80::1]:29500\"","handlingStrategy":"validation","validationCode":"port = addr[addr.index(\"]\") + 2:]\nassert port.isdigit(), f\"non-numeric port {port!r}\"","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Avoid hand-typing IPv6 ports; generate them from integers"],"tags":["ipv6","distributed","port","validation"],"backgroundTag":"invalid-ipv6-address","analyzedSha":"0132848349585cfe6aae51c4941cbae872505f8a","analyzedAt":"2026-08-28T05:10:05.995Z","schemaVersion":2},"datasetVersion":"2026-08-28T06:17:29.519Z"}