#16216·Speech

FastPitchModel_SSL / SSLDisentangler crash on validation: on_validation_epoch_end() missing 1 required positional argument: 'outputs'

Author: udsy19Created Sep 5, 2026Updated Sep 16, 2026
Labelscommunity-request

Describe the bug

FastPitchModel_SSL and SSLDisentangler (nemo/collections/tts/models/fastpitch_ssl.py, nemo/collections/tts/models/ssl_tts.py) define on_validation_epoch_end(self, outputs), the pre-Lightning-2.0 hook signature. Lightning's evaluation loop calls this hook with zero positional arguments (_EvaluationLoop._on_evaluation_epoch_end -> call._call_lightning_module_hook(trainer, "on_validation_epoch_end")), so any real validation epoch on either model raises a TypeError before user code runs, aborting training at the very first sanity-check validation pass.

The PL 2.0 migration (#6433) removed this parameter from every other model in the repo (renaming validation_epoch_end(self, outputs) to on_validation_epoch_end(self) and switching to self.validation_step_outputs, e.g. the sibling FastPitchModel.on_validation_epoch_end), but left it in place on these two.

Steps/Code to reproduce bug

python
from nemo.collections.tts.models.fastpitch_ssl import FastPitchModel_SSL
# bypasses __init__ (needs a full model config); the crash is in the call
# signature itself, independent of any instance state
m = object.__new__(FastPitchModel_SSL.__wrapped__)
m.on_validation_epoch_end()  # zero args, exactly how Lightning calls this hook

Same for SSLDisentangler. A full lightning.pytorch.Trainer.fit() run with a validation_step reaches the same call and crashes identically.

Expected behavior

Validation should run without a TypeError, the same as every other TTS model in the repo.

Actual behavior

TypeError: FastPitchModel_SSL.on_validation_epoch_end() missing 1 required positional argument: 'outputs'

and the identical error for SSLDisentangler. This happens on the very first sanity-check validation pass, before any training step runs, whenever validation_ds/check_val_every_n_epoch is configured -- which the shipped examples/tts/conf/fastpitch_ssl.yaml and examples/tts/conf/ssl_tts_22050.yaml both do.

Environment overview

  • Environment location: Bare-metal (CPU)
  • Method of NeMo install: from source (pip install -e .)

Environment details

  • OS: Linux
  • PyTorch: 2.13.0+cpu
  • Lightning: 2.4.0
  • Python: 3.12.3