From 797cdb70b7ad7d6433e6ad39bb80b23cfbb98c40 Mon Sep 17 00:00:00 2001 From: UGBOMEH OGOCHUKWU WILLIAMS Date: Sat, 18 Apr 2026 14:37:28 +0100 Subject: [PATCH] Fix #8442: pass meta_data to EnsureChannelFirst when track_meta is False When set_track_meta(False) is active, MetaTensor.ensure_torch_and_prune_meta returns a plain tensor. The subsequent EnsureChannelFirst() call then has no metadata source, causing a ValueError. Fix: pass meta_data explicitly when img is not a MetaTensor. Signed-off-by: UGBOMEH OGOCHUKWU WILLIAMS --- monai/transforms/io/array.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/monai/transforms/io/array.py b/monai/transforms/io/array.py index f0c1d1949d..6faff20e9d 100644 --- a/monai/transforms/io/array.py +++ b/monai/transforms/io/array.py @@ -300,7 +300,10 @@ def __call__(self, filename: Sequence[PathLike] | PathLike, reader: ImageReader img_array, meta_data, self.simple_keys, pattern=self.pattern, sep=self.sep ) if self.ensure_channel_first: - img = EnsureChannelFirst()(img) + if not isinstance(img, MetaTensor): + img = EnsureChannelFirst()(img, meta_dict=meta_data) + else: + img = EnsureChannelFirst()(img) if self.image_only: return img return img, img.meta if isinstance(img, MetaTensor) else meta_data