From 5dde311c590f956acf201656da8072fd55e25a36 Mon Sep 17 00:00:00 2001 From: Dan Bianchini Date: Tue, 4 Aug 2026 13:21:13 -0700 Subject: [PATCH] fix(model_trainer): set input_data_config to None when no sources are provided When no input channels are provided, input_data_config must be None rather than an empty list to avoid SageMaker API validation errors. --- sagemaker-train/src/sagemaker/train/model_trainer.py | 6 +++++- sagemaker-train/tests/unit/train/test_model_trainer.py | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sagemaker-train/src/sagemaker/train/model_trainer.py b/sagemaker-train/src/sagemaker/train/model_trainer.py index 48a80af03b..a9c03b6351 100644 --- a/sagemaker-train/src/sagemaker/train/model_trainer.py +++ b/sagemaker-train/src/sagemaker/train/model_trainer.py @@ -736,7 +736,11 @@ def _create_training_job_args( "training_job_name": current_training_job_name, "algorithm_specification": algorithm_specification, "hyper_parameters": string_hyper_parameters, - "input_data_config": final_input_data_config, + "input_data_config": ( + final_input_data_config + if final_input_data_config + else None + ), "resource_config": resource_config, "vpc_config": vpc_config, "role_arn": self.role, diff --git a/sagemaker-train/tests/unit/train/test_model_trainer.py b/sagemaker-train/tests/unit/train/test_model_trainer.py index ce5d208bbc..18a3e1cf17 100644 --- a/sagemaker-train/tests/unit/train/test_model_trainer.py +++ b/sagemaker-train/tests/unit/train/test_model_trainer.py @@ -350,7 +350,7 @@ def test_train_with_intelligent_defaults_training_job_space( training_job_name=ANY, algorithm_specification=ANY, hyper_parameters={}, - input_data_config=[], + input_data_config=None, resource_config=ResourceConfig( volume_size_in_gb=30, instance_type="ml.m5.xlarge",