{"record":{"id":"f6f2db29897be10b","repo":"Lightning-AI/pytorch-lightning","slug":"f-reload-dataloaders-every-n-epochs-should-be-an","errorCode":null,"errorMessage":"f\"`reload_dataloaders_every_n_epochs` should be an int >= 0, got {reload_dataloaders_every_n_epochs}.\"","messagePattern":"f\"`reload_dataloaders_every_n_epochs` should be an int >= 0, got (.+?)\\.\"","errorType":"validation","errorClass":"MisconfigurationException","httpStatus":null,"severity":"error","filePath":"src/lightning/pytorch/trainer/connectors/data_connector.py","lineNumber":74,"sourceCode":"        check_val_every_n_epoch: Optional[int],\n    ) -> None:\n        self.trainer.datamodule = None\n\n        if check_val_every_n_epoch is not None and not isinstance(check_val_every_n_epoch, int):\n            raise MisconfigurationException(\n                f\"`check_val_every_n_epoch` should be an integer, found {check_val_every_n_epoch!r}.\"\n            )\n\n        if check_val_every_n_epoch is None and isinstance(val_check_interval, float):\n            raise MisconfigurationException(\n                \"`val_check_interval` should be an integer or a time-based duration (str 'DD:HH:MM:SS', \"\n                \"datetime.timedelta, or dict kwargs for timedelta) when `check_val_every_n_epoch=None`.\"\n            )\n\n        self.trainer.check_val_every_n_epoch = check_val_every_n_epoch\n\n        if not isinstance(reload_dataloaders_every_n_epochs, int) or (reload_dataloaders_every_n_epochs < 0):\n            raise MisconfigurationException(\n                f\"`reload_dataloaders_every_n_epochs` should be an int >= 0, got {reload_dataloaders_every_n_epochs}.\"\n            )\n\n        self.trainer.reload_dataloaders_every_n_epochs = reload_dataloaders_every_n_epochs\n\n    def prepare_data(self) -> None:\n        trainer = self.trainer\n\n        # on multi-gpu jobs we only want to manipulate (download, etc) on node_rank=0, local_rank=0\n        # or in the case where each node needs to do its own manipulation in which case just local_rank=0\n        local_rank_zero = trainer.local_rank == 0\n        global_rank_zero = trainer.local_rank == 0 and trainer.node_rank == 0\n\n        datamodule = trainer.datamodule\n        lightning_module = trainer.lightning_module\n        # handle datamodule prepare data:\n        if datamodule is not None and is_overridden(\"prepare_data\", datamodule):\n            prepare_data_per_node = datamodule.prepare_data_per_node","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/Lightning-AI/pytorch-lightning/blob/9fed5c27d2a62ff0efd6c3573599921d6ff67c14/src/lightning/pytorch/trainer/connectors/data_connector.py#L56-L92","documentation":"DataConnector validation at Trainer init: reload_dataloaders_every_n_epochs must be an int and >= 0. 0 means never reload; N means reload dataloaders every N epochs. Non-ints (floats, strings) and negatives are rejected.","triggerScenarios":"Trainer(reload_dataloaders_every_n_epochs=-1), =1.0, or a value from config/sweep arriving as float or str.","commonSituations":"Config files with quoted numbers; hyperparameter search tools yielding floats; users assuming -1 means 'always' or 'disabled'.","solutions":["Pass a non-negative int, e.g., reload_dataloaders_every_n_epochs=1 (reload every epoch) or 0 (never)","Cast values from external configs: int(value)","Validate sweep/config values before Trainer construction"],"exampleFix":"# before\ntrainer = Trainer(reload_dataloaders_every_n_epochs=1.0)\n# after\ntrainer = Trainer(reload_dataloaders_every_n_epochs=1)","handlingStrategy":"type-guard","validationCode":"reload = cfg[\"reload_dataloaders_every_n_epochs\"]\nif not isinstance(reload, int) or isinstance(reload, bool) or reload < 0:\n    reload = max(0, int(reload))\ntrainer = Trainer(reload_dataloaders_every_n_epochs=reload)","typeGuard":"def is_valid_reload_n(v) -> bool:\n    return isinstance(v, int) and not isinstance(v, bool) and v >= 0","tryCatchPattern":null,"preventionTips":["Validate non-negative ints in your config schema","Cast sweep outputs before Trainer construction"],"tags":["lightning","trainer-init","dataloader-reload","type-error","config"],"backgroundTag":"trainer-config-type-validation","analyzedSha":"9fed5c27d2a62ff0efd6c3573599921d6ff67c14","analyzedAt":"2026-08-28T11:52:41.083Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}