{"record":{"id":"af9638ed950ae079","repo":"aeron-io/aeron","slug":"media-timestamps-media-rcv-timestamp-offset-are-not","errorCode":null,"errorMessage":"Media timestamps 'media-rcv-timestamp-offset' are not supported in the Java driver: channel={channel}","messagePattern":"Media timestamps 'media-rcv-timestamp-offset' are not supported in the Java driver: channel=(.+?)","errorType":"validation","errorClass":"InvalidChannelException","httpStatus":null,"severity":"error","filePath":"aeron-driver/src/main/java/io/aeron/driver/DriverConductor.java","lineNumber":2365,"sourceCode":"                    udpChannel.originalUriString());\n        }\n    }\n\n    private static void validateControlForSubscription(final UdpChannel udpChannel)\n    {\n        if (udpChannel.hasExplicitControl() &&\n            0 == udpChannel.localControl().getPort())\n        {\n            throw new IllegalArgumentException(MDC_CONTROL_PARAM_NAME + \" has port=0 for subscription: channel=\" +\n                udpChannel.originalUriString());\n        }\n    }\n\n    private static void validateTimestampConfiguration(final UdpChannel udpChannel)\n    {\n        if (null != udpChannel.channelUri().get(MEDIA_RCV_TIMESTAMP_OFFSET_PARAM_NAME))\n        {\n            throw new InvalidChannelException(\n                \"Media timestamps '\" + MEDIA_RCV_TIMESTAMP_OFFSET_PARAM_NAME +\n                    \"' are not supported in the Java driver: channel=\" + udpChannel.originalUriString());\n        }\n    }\n\n    private static void validateDestinationUri(final ChannelUri uri, final String destinationUri)\n    {\n        if (SPY_QUALIFIER.equals(uri.prefix()))\n        {\n            throw new InvalidChannelException(\"Aeron spies are invalid as send destinations: channel=\" +\n                destinationUri);\n        }\n\n        for (final String invalidKey : INVALID_DESTINATION_KEYS)\n        {\n            if (uri.containsKey(invalidKey))\n            {\n                throw new InvalidChannelException(","sourceCodeStart":2347,"sourceCodeEnd":2383,"githubUrl":"https://github.com/aeron-io/aeron/blob/6d60124e15e35c11b49ba2e3c2c2858a09a18803/aeron-driver/src/main/java/io/aeron/driver/DriverConductor.java#L2347-L2383","documentation":"The channel URI contains the media-rcv-timestamp-offset parameter, which requests kernel/software receive timestamps for media traffic. This feature is only implemented in the C driver; the Java driver explicitly rejects it with InvalidChannelException at channel validation time.","triggerScenarios":"Calling Aeron.addSubscription()/addPublication() or adding a destination with a URI containing media-rcv-timestamp-offset (e.g. \"aeron:udp?media-rcv-timestamp-offset=48\").","commonSituations":"Porting a configuration written for the C/C++ driver to the Java driver; enabling hardware/network timestamping features documented for Aeron C; sharing a shared config file between Java and C drivers.","solutions":["Remove media-rcv-timestamp-offset from the channel URI when using the Java driver.","Switch to the Aeron C driver if media receive timestamps are required.","Use the supported publication-rcv-timestamp-offset / channel-rcv-timestamp-offset parameters if that satisfies the timestamping need, subject to experimental-features being enabled.","Guard the URI assembly with a check of the driver implementation before adding timestamp params."],"exampleFix":"// before\nString uri = \"aeron:udp?endpoint=localhost:40456|media-rcv-timestamp-offset=48\";\naeron.addPublication(uri, 1001);\n// after\nString uri = \"aeron:udp?endpoint=localhost:40456\";\naeron.addPublication(uri, 1001);","handlingStrategy":"validation","validationCode":"if (ChannelUri.parse(channel).containsKey(\"media-rcv-timestamp-offset\")) throw new IllegalArgumentException(\"media-rcv-timestamp-offset unsupported in Java driver\");","typeGuard":"boolean isJavaDriverCompatible(ChannelUri uri) {\n  return !uri.containsKey(\"media-rcv-timestamp-offset\");\n}","tryCatchPattern":"try { aeron.addSubscription(uri, streamId); }\ncatch (InvalidChannelException e) { if (e.getMessage().contains(\"media-rcv-timestamp-offset\")) { /* strip param or switch to C driver */ } else throw e; }","preventionTips":["Keep Java- and C-driver channel configs in separate templates","Audit shared URI configs for C-only parameters","Use supported timestamp parameters (channel/publication rcv timestamp offsets) instead"],"tags":["aeron","unsupported-feature","timestamps","channel-uri"],"backgroundTag":"unsupported-config-value","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"}