{"record":{"id":"dfb67e422d36224b","repo":"apache/beam","slug":"native-sinks-no-longer-implemented-ignoring-use-legacy-bq","errorCode":null,"errorMessage":"Native sinks no longer implemented; ignoring use_legacy_bq_sink.","messagePattern":"Native sinks no longer implemented; ignoring use_legacy_bq_sink\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"sdks/python/apache_beam/runners/dataflow/dataflow_runner.py","lineNumber":401,"sourceCode":"      pipeline.visit(\n          self.side_input_visitor(\n              deterministic_key_coders=not options.view_as(\n                  TypeOptions).allow_non_deterministic_key_coders))\n\n      # Performing configured PTransform overrides. Note that this is currently\n      # done before Runner API serialization, since the new proto needs to\n      # contain any added PTransforms.\n      pipeline.replace_all(DataflowRunner._PTRANSFORM_OVERRIDES)\n\n      # Apply DataflowRunner-specific overrides (e.g., streaming PubSub\n      # optimizations)\n      from apache_beam.runners.dataflow.ptransform_overrides import get_dataflow_transform_overrides\n      dataflow_overrides = get_dataflow_transform_overrides(options)\n      if dataflow_overrides:\n        pipeline.replace_all(dataflow_overrides)\n\n      if options.view_as(DebugOptions).lookup_experiment('use_legacy_bq_sink'):\n        warnings.warn(\n            \"Native sinks no longer implemented; \"\n            \"ignoring use_legacy_bq_sink.\")\n\n    if pipeline_proto:\n      self.proto_pipeline = pipeline_proto\n\n    else:\n      if options.view_as(SetupOptions).prebuild_sdk_container_engine:\n        # if prebuild_sdk_container_engine is specified we will build a new sdk\n        # container image with dependencies pre-installed and use that image,\n        # instead of using the inferred default container image.\n        self._default_environment = (\n            environments.DockerEnvironment.from_options(options))\n        options.view_as(WorkerOptions).sdk_container_image = (\n            self._default_environment.container_image)\n      else:\n        artifacts = environments.python_sdk_dependencies(options)\n        if artifacts:","sourceCodeStart":383,"sourceCodeEnd":419,"githubUrl":"https://github.com/apache/beam/blob/12126d8942aaf848030c478b4c6a28c6af861c66/sdks/python/apache_beam/runners/dataflow/dataflow_runner.py#L383-L419","documentation":"The Dataflow runner warns when the `use_legacy_bq_sink` experiment is set, because native BigQuery sinks are no longer implemented and the flag is ignored; the standard Beam sink path is used regardless.","triggerScenarios":"Launching a pipeline to Dataflow with `--experiments=use_legacy_bq_sink` (via PipelineOptions or Dataflow console), reaching run_pipeline in dataflow_runner.py.","commonSituations":"Older deployment scripts/templates that enabled the legacy sink experiment; migration off Dataflow's former native sink support.","solutions":["Remove `use_legacy_bq_sink` from the experiments list.","Use `WriteToBigQuery` with an explicit method (e.g. FILE_LOADS) if that load behavior is desired.","Audit Dataflow job configs and launch scripts to strip the flag."],"exampleFix":"// before\noptions = PipelineOptions(['--experiments=use_legacy_bq_sink'])\n// after\noptions = PipelineOptions([])  # or other experiments only","handlingStrategy":"validation","validationCode":"from apache_beam.options.pipeline_options import DebugOptions\nif options.view_as(DebugOptions).lookup_experiment('use_legacy_bq_sink'):\n    raise ValueError('use_legacy_bq_sink is ignored; remove the experiment')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Audit Dataflow --experiments lists for removed/ignored flags.","Use WriteToBigQuery with an explicit method instead of sink experiments.","Keep launch scripts in version control and lint them for deprecated experiments."],"tags":["python","deprecation","apache-beam","dataflow","bigquery"],"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"}