Hi,
the find_unused_params option in DDP will work if certain params are not used in forward pass, but then all params used in fwd pass get gradients in the backward pass.
There is another case where all params are used in fwd pass but some don’t get grad in backwards, for example if you have:
a, b = forward()our 
loss = a.sum()
loss.backward()

It seems like this is what may be happening in your training, but would need your training loop to verify this.