Perdón por reactivar este tema, pero una de las condiciones ocurre cuando se utiliza un índice de símbolo, es decir, custom_fields[:hello], al actualizar un valor existente; en lugar de actualizarlo, se añadía otro campo, lo que resultaba en un array. Esta podría ser la única condición, en mi opinión.
Esto debería corregir el efecto secundario causado, casi con total seguridad.