{"record":{"id":"4bf15f0ec185ac95","repo":"apache/beam","slug":"producer-properties-is-no-longer-supported-and-will-be","errorCode":null,"errorMessage":"producer_properties is no longer supported and will be removed in a future release.","messagePattern":"producer_properties is no longer supported and will be removed in a future release\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"sdks/python/apache_beam/io/kinesis.py","lineNumber":172,"sourceCode":"    :param region: AWS region. Example: 'us-east-1'.\n    :param service_endpoint: Kinesis service endpoint\n    :param verify_certificate: Enable or disable certificate verification.\n        Never set to False on production. True by default.\n    :param partition_key: Specify default partition key.\n    :param producer_properties: (Deprecated) This option no longer is available\n        since the AWS IOs upgraded to v2. Trying to set it will lead to an\n        error. For more info, see https://github.com/apache/beam/issues/33430.\n    :param expansion_service: The address (host:port) of the ExpansionService.\n    :param aggregation_enabled: Enable or disable aggregation.\n    :param aggregation_max_bytes: Maximum number of bytes to buffer before\n        sending a batch of records. Defaults to 51200.\n    :param aggregation_max_buffered_time: Maximum time(millisecond) to buffer\n        records before sending a batch of records. Defaults to 100.\n    :param aggregation_shard_refresh_interval: Interval in minutes to refresh\n        the shard map. Defaults to 2.\n    \"\"\"\n    if producer_properties is not None:\n      raise ValueError(\n          'producer_properties is no longer supported and will be removed ' +\n          'in a future release.')\n    super().__init__(\n        self.URN,\n        NamedTupleBasedPayloadBuilder(\n            WriteToKinesisSchema(\n                stream_name=stream_name,\n                aws_access_key=aws_access_key,\n                aws_secret_key=aws_secret_key,\n                region=region,\n                partition_key=partition_key,\n                service_endpoint=service_endpoint,\n                verify_certificate=verify_certificate,\n                aggregation_enabled=aggregation_enabled,\n                aggregation_max_bytes=aggregation_max_bytes,\n                aggregation_max_buffered_time=aggregation_max_buffered_time,\n                aggregation_shard_refresh_interval=\n                aggregation_shard_refresh_interval,","sourceCodeStart":154,"sourceCodeEnd":190,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/python/apache_beam/io/kinesis.py#L154-L190","documentation":"The EFO/aggregated WriteToKinesis transform no longer accepts producer_properties; that parameter was removed as the sink moved its configuration into named structured options (aggregation settings, etc.). Passing a non-None producer_properties raises ValueError immediately so users migrate rather than silently losing settings.","triggerScenarios":"Constructing apache_beam.io.kinesis.WriteToKinesis(..., producer_properties={...}) with any dict/value, typically ported from older Beam code or the Kinesis IO of a different SDK.","commonSituations":"Upgrading apache-beam after producer_properties was deprecated and removed; migrating code from the legacy Kinesis IO or from Beam Java examples using producer properties.","solutions":["Remove the producer_properties argument entirely.","Map old producer settings to the named constructor arguments (e.g. aggregation_enabled, aggregation_max_buffered_records, aggregation_max_buffered_time, aggregation_shard_refresh_interval).","Keep any needed producer config in the Kinesis client configuration provided to the expansion service instead."],"exampleFix":"# before\nWriteToKinesis(stream_name, region, producer_properties={'CollectionMaxRecords': 500})\n# after\nWriteToKinesis(stream_name, region, aggregation_enabled=True, aggregation_max_buffered_records=500)","handlingStrategy":"fallback","validationCode":"if producer_properties is not None:\n    raise ValueError('producer_properties removed; use named aggregation options')","typeGuard":"def uses_removed_kinesis_options(kwargs) -> bool:\n    return 'producer_properties' in kwargs and kwargs['producer_properties'] is not None","tryCatchPattern":"try:\n    _ = WriteToKinesis(stream, region, producer_properties=props)\nexcept ValueError as e:\n    if 'producer_properties' in str(e): log.error('Migrate to named aggregation_* arguments')","preventionTips":["Drop producer_properties when upgrading Beam Kinesis IO","Translate old producer config keys to aggregation_* constructor arguments","Check the IO changelog during Beam version upgrades"],"tags":["apache-beam","python","kinesis","removed-parameter","migration"],"backgroundTag":"deprecated-api-usage","analyzedSha":"12126d8942aaf848030c478b4c6a28c6af861c66","analyzedAt":"2026-09-13T01:50:10.254Z","contentChangedAt":"2026-09-13T01:50:10.254Z","schemaVersion":2},"datasetVersion":"2026-09-20T03:17:13.778Z"}