{"record":{"id":"6f16ca22247e19ec","repo":"aeron-io/aeron","slug":"invalid-format","errorCode":null,"errorMessage":"invalid format: ","messagePattern":"invalid format: ","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"aeron-driver/src/main/java/io/aeron/driver/media/SocketAddressParser.java","lineNumber":66,"sourceCode":"     * @return An {@link InetSocketAddress} for the parsed input.\n     */\n    static InetSocketAddress parse(\n        final String value, final String uriParamName, final boolean isReResolution, final NameResolver nameResolver)\n    {\n        if (Strings.isEmpty(value))\n        {\n            throw new NullPointerException(\"input string must not be null or empty\");\n        }\n\n        final String nameAndPort = nameResolver.lookup(value, uriParamName, isReResolution);\n        ParseResult result = tryParseIpV4(nameAndPort);\n        if (null == result)\n        {\n            result = tryParseIpV6(nameAndPort);\n        }\n        if (null == result)\n        {\n            throw new IllegalArgumentException(\"invalid format: \" + nameAndPort);\n        }\n\n        final InetAddress inetAddress = nameResolver.resolve(result.host, uriParamName, isReResolution);\n        return null == inetAddress ? InetSocketAddress.createUnresolved(result.host, result.port) :\n        new InetSocketAddress(inetAddress, result.port);\n    }\n\n    static boolean isMulticastAddress(final String hostAndPort)\n    {\n        ParseResult result = tryParseIpV4(hostAndPort);\n        if (null != result)\n        {\n            final String host = result.host;\n            for (int i = 0, dotIndex = 0, end = host.length() - 1; i <= end; i++)\n            {\n                final char c = host.charAt(i);\n                if ('.' == c || end == i)\n                {","sourceCodeStart":48,"sourceCodeEnd":84,"githubUrl":"https://github.com/aeron-io/aeron/blob/6d60124e15e35c11b49ba2e3c2c2858a09a18803/aeron-driver/src/main/java/io/aeron/driver/media/SocketAddressParser.java#L48-L84","documentation":"SocketAddressParser.parse throws IllegalArgumentException('invalid format: ' + nameAndPort) when the string is neither a valid IPv4 host:port nor a valid IPv6 [host]:port after name resolution. The parser uses small state machines (tryParseIpV4/tryParseIpV6) and rejects anything they cannot consume.","triggerScenarios":"Passing a string lacking host:port structure — e.g. 'localhost' with no port, 'host:port' where port is non-numeric, stray characters, or an unbracketed IPv6 address — to parse() after NameResolver.lookup.","commonSituations":"Typos in the aeron URI endpoint (missing :port); writing raw IPv6 like ::1:40456 without square brackets; whitespace inside the endpoint value; custom NameResolver returning a malformed or decorated address string.","solutions":["Provide endpoint in canonical form: host:port for IPv4, [host]:port for IPv6, e.g. endpoint=[fe80::1]:40456","Verify the port is a valid integer and there is no whitespace or stray characters in the URI parameter","Check any custom NameResolver output — it must itself be a parseable address:port string"],"exampleFix":"// before\n\"aeron:udp?endpoint=fe80::1:40456\" // unbracketed IPv6, unparseable\n// after\n\"aeron:udp?endpoint=[fe80::1]:40456\"","handlingStrategy":"validation","validationCode":"static boolean looksLikeAddressPort(String s) {\n    if (s == null) return false;\n    if (s.startsWith(\"[\")) return s.matches(\"\\[[0-9a-fA-F:.%]+\\]:\\d+\");\n    int c = s.indexOf(':');\n    return c > 0 && c < s.length() - 1 && s.indexOf(':', c + 1) == -1;\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always bracket IPv6 addresses: [host]:port","Always include a numeric port","Strip whitespace from URI parameter values","Check custom NameResolver output is itself address:port form"],"tags":["parsing","uri","socket-address","ipv6"],"backgroundTag":"invalid-argument-format","analyzedSha":"6d60124e15e35c11b49ba2e3c2c2858a09a18803","analyzedAt":"2026-09-12T11:17:07.683Z","contentChangedAt":"2026-09-12T11:17:07.683Z","schemaVersion":2},"datasetVersion":"2026-09-19T12:17:13.211Z"}