The `length_step` validator runs unconditionally for every record and
calls `length % program.schedule_interval`. When the length field is
left blank in the admin form, `length` is nil and `length %` raises
NoMethodError, returning a 500 Internal Server Error instead of a
regular validation failure.
Skip the divisor check unless `length` is numeric so that the
`numericality` validator on `:length` can produce a proper error
message, restoring the usual validation feedback.