{"record":{"id":"eac3b1fe4b79d54d","repo":"Lightning-AI/pytorch-lightning","slug":"only-pytorch-dataloader-are-currently-supported-in","errorCode":null,"errorMessage":"Only PyTorch DataLoader are currently supported in `setup_dataloaders`.","messagePattern":"Only PyTorch DataLoader are currently supported in `setup_dataloaders`\\.","errorType":"validation","errorClass":"TypeError","httpStatus":null,"severity":"error","filePath":"src/lightning/fabric/fabric.py","lineNumber":1253,"sourceCode":"            raise ValueError(\"An optimizer should be passed only once to the `setup_optimizers` method.\")\n\n        if any(_has_meta_device_parameters_or_buffers(optimizer) for optimizer in optimizers):\n            raise RuntimeError(\n                \"The optimizer has references to the model's meta-device parameters. Materializing them is\"\n                \" is currently not supported. Create the optimizer after setting up the model, then call\"\n                \" `fabric.setup_optimizers(optimizer)`.\"\n            )\n\n    def _validate_setup_dataloaders(self, dataloaders: Sequence[DataLoader]) -> None:\n        self._validate_launched()\n        if not dataloaders:\n            raise ValueError(\"`setup_dataloaders` requires at least one dataloader as input.\")\n\n        if any(isinstance(dl, _FabricDataLoader) for dl in dataloaders):\n            raise ValueError(\"A dataloader should be passed only once to the `setup_dataloaders` method.\")\n\n        if any(not isinstance(dl, DataLoader) for dl in dataloaders):\n            raise TypeError(\"Only PyTorch DataLoader are currently supported in `setup_dataloaders`.\")\n\n    @staticmethod\n    def _configure_callbacks(callbacks: Optional[Union[list[Any], Any]]) -> list[Any]:\n        callbacks = callbacks if callbacks is not None else []\n        callbacks = callbacks if isinstance(callbacks, list) else [callbacks]\n        callbacks.extend(_load_external_callbacks(\"lightning.fabric.callbacks_factory\"))\n        return callbacks\n","sourceCodeStart":1235,"sourceCodeEnd":1261,"githubUrl":"https://github.com/Lightning-AI/pytorch-lightning/blob/9fed5c27d2a62ff0efd6c3573599921d6ff67c14/src/lightning/fabric/fabric.py#L1235-L1261","documentation":"Raised when any object passed to `fabric.setup_dataloaders()` is not a `torch.utils.data.DataLoader`. In contrast to the Lightning Trainer, Fabric only supports plain PyTorch DataLoaders — not iterables, custom loader classes, or combined objects like LightningDataModules.","triggerScenarios":"Passing a `IterableDataset`, a plain iterable, a HuggingFace `DataLoader`-like object, a `LightningDataModule`, or any custom loader class to `fabric.setup_dataloaders()`.","commonSituations":"Migrating from Lightning Trainer where combined data modules or arbitrary iterables were accepted; wrapping datasets with custom batch iterators; passing a dataset directly instead of a DataLoader.","solutions":["Wrap your dataset in a `torch.utils.data.DataLoader` before calling setup_dataloaders","If you have a custom iterable, iterate it manually inside the training loop instead of passing it to setup_dataloaders (you lose Fabric's distributed sampler handling)","Check `isinstance(obj, torch.utils.data.DataLoader)` before passing"],"exampleFix":"# before\nloader = fabric.setup_dataloaders(my_dataset)  # not a DataLoader\n\n# after\nfrom torch.utils.data import DataLoader\nloader = fabric.setup_dataloaders(DataLoader(my_dataset, batch_size=32))","handlingStrategy":"type-guard","validationCode":"from torch.utils.data import DataLoader\nassert all(isinstance(dl, DataLoader) for dl in dls), 'only torch DataLoaders supported'","typeGuard":"from torch.utils.data import DataLoader\ndef is_torch_dataloader(x) -> bool:\n    return isinstance(x, DataLoader)","tryCatchPattern":null,"preventionTips":["Wrap datasets in torch DataLoader before Fabric setup","Remember Fabric has no LightningDataModule support"],"tags":["pytorch-lightning","fabric","dataloader","type-validation"],"backgroundTag":"unsupported-type-argument","analyzedSha":"9fed5c27d2a62ff0efd6c3573599921d6ff67c14","analyzedAt":"2026-08-28T11:52:41.083Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}