{"record":{"id":"8874049c3220d730","repo":"aeron-io/aeron","slug":"value-exceeds-maximum-permitted-value-value","errorCode":null,"errorMessage":"value exceeds maximum permitted: value=${value}","messagePattern":"value exceeds maximum permitted: value=(.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"aeron-client/src/main/java/io/aeron/ChannelUriStringBuilder.java","lineNumber":1680,"sourceCode":"     *\n     * @param channelUri to read the value from.\n     * @return this for a fluent API.\n     * @see CommonContext#SOCKET_SNDBUF_PARAM_NAME\n     */\n    public ChannelUriStringBuilder socketSndbufLength(final ChannelUri channelUri)\n    {\n        final String valueStr = channelUri.get(SOCKET_SNDBUF_PARAM_NAME);\n        if (null == valueStr)\n        {\n            this.socketSndbufLength = null;\n            return this;\n        }\n        else\n        {\n            final long value = parseSize(SOCKET_SNDBUF_PARAM_NAME, valueStr);\n            if (value > Integer.MAX_VALUE)\n            {\n                throw new IllegalArgumentException(\"value exceeds maximum permitted: value=\" + value);\n            }\n\n            return socketSndbufLength((int)value);\n        }\n    }\n\n    /**\n     * Get the underlying OS send buffer length setting.\n     *\n     * @return underlying OS send buffer length setting or null if not specified.\n     * @see CommonContext#SOCKET_SNDBUF_PARAM_NAME\n     */\n    public Integer socketSndbufLength()\n    {\n        return socketSndbufLength;\n    }\n\n    /**","sourceCodeStart":1662,"sourceCodeEnd":1698,"githubUrl":"https://github.com/aeron-io/aeron/blob/6d60124e15e35c11b49ba2e3c2c2858a09a18803/aeron-client/src/main/java/io/aeron/ChannelUriStringBuilder.java#L1662-L1698","documentation":"Thrown when parsing the socket_sndbuf parameter from a channel URI string. The parsed size is stored internally as an int, so any value greater than Integer.MAX_VALUE is rejected with this error. The parameter must fit in a positive 32-bit int (bytes).","triggerScenarios":"Building a ChannelUriStringBuilder via ChannelUri.parse(...).toBuilder() or setSocketSndbufLength parsing from a URI containing socket_sndbuf=<value greater than 2147483647>.","commonSituations":"Configuring very large socket send buffers copied from OS-level settings (e.g. net.core.wmem_max values expressed beyond 2GB); typos adding an extra digit; unit confusion (bits vs bytes).","solutions":["Reduce the socket_sndbuf value in the URI to at most Integer.MAX_VALUE (2147483647) bytes.","Remember the value is bytes, not bits: divide bit-based sizes by 8 before specifying.","If you need buffers larger than 2GB, set them at the OS/socket level instead of via the channel URI."],"exampleFix":"// before\nString uri = \"aeron:udp?endpoint=localhost:40456|socket_sndbuf=4294967296\"; // 4GB > Integer.MAX_VALUE\n// after\nString uri = \"aeron:udp?endpoint=localhost:40456|socket_sndbuf=2147483647\";","handlingStrategy":"validation","validationCode":"long value = parseSize(uriParam);\nif (value > Integer.MAX_VALUE) {\n    throw new IllegalArgumentException(\"socket_sndbuf must be <= \" + Integer.MAX_VALUE + \", got \" + value);\n}","typeGuard":"boolean isValidSndbuf(long value) { return value >= 0 && value <= Integer.MAX_VALUE; }","tryCatchPattern":"try {\n    builder.socketSndbufLength((int) value);\n} catch (IllegalArgumentException e) {\n    log.warn(\"socket_sndbuf too large, clamping\", e);\n    builder.socketSndbufLength(Integer.MAX_VALUE);\n}","preventionTips":["Clamp configured buffer sizes to Integer.MAX_VALUE before building the URI.","Remember values are bytes; convert bit-based OS settings accordingly.","For >2GB buffers, tune at the OS level instead of the channel URI."],"tags":["aeron","channel-uri","config","overflow"],"backgroundTag":"value-out-of-range","analyzedSha":"6d60124e15e35c11b49ba2e3c2c2858a09a18803","analyzedAt":"2026-09-12T11:17:07.683Z","contentChangedAt":"2026-09-12T11:17:07.683Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}