¿Como puedo validar un objeto o array con react yup? [closed]

Tengo que validar un formulario de react utilizando YUP.
En el mismo tengo un objeto Estado: {nombre: “”}
Y otros objetos o atributos que dependen su obligatoriedad, dependiendo el valor del estado inicial.
Encontre la funcion .when que utilizo en el siguiente ejemplo

export const formValidation = Yup.object().shape({
  documento: Yup.string().required("*Requerido"),
  estado: Yup.object({
    nombre: Yup.string().required("*Requerido"),
  }),

  vidautil: Yup.number()
    .positive("Valor negativo")
    .when("estado.nombre", {
      is: (value) => value !== "Fin" && value !== "Inicio",
      then: Yup.number().required("*Requerido"),
      otherwise: Yup.number(),
    })
});

La misma funciona perfectamente en el atributo vidautil. Pero al momento de aplicar la misma logica en un objeto o un array, ya deja de funcionar.

export const formValidation = Yup.object().shape({
  documento: Yup.string().required("*Requerido"),
  estado: Yup.object({
    nombre: Yup.string().required("*Requerido"),
  }),

  vidautil: Yup.number()
    .positive("Valor negativo")
    .when("estado.nombre", {
      is: (value) => value !== "Fin" && value !== "Inicio",
      then: Yup.number().required("*Requerido"),
      otherwise: Yup.number(),
    }),

  deposito: Yup.object({
    nombre: Yup.string().when("estado.nombre", {
      is: (value) => value !== "Prospeccion" && value !== "Exploracion inicial",
      then: Yup.string().required("*Requerido"),
      otherwise: Yup.string(),
  }),
});

Por ejemplo, aqui aplico la misma logica en el objeto Departamento: {nombre: “”} y ya no funciona. Siempre me lo toma como requerido.

Desde ya, muchas gracias

Probe validarlo de varias formas, cambiando los operadores de comparación. Pero siempre me arroja el mismo error