Doc not saving after triggering an event

Hi everyone!

I have a working custom script but I’m facing a big problem: it does not save and I don’t get any error messages nor something in the console. I can save the document until I trigger an event using a button. After that it doesn’t do anything, so I know where it resides in the code but I can’t figure what’s wrong with it (ignoring the bad coding habits)

contar: function(frm) {
        cur_frm.clear_table("table_11");
        frm.doc.table_17.forEach(function(d) {
			if(d.rol === "REPRESENTANTE"){
				representante.push(d.persona)
                votosrealizados = votosrealizados + 1;
			}
		});

        repeticiones_representante = representante.reduce(function (acc, curr) {
            return acc[curr] ? ++acc[curr] : acc[curr] = 1, acc
        }, {});
        repeticiones_representante_nombres = Object.keys(repeticiones_representante)
        repeticiones_representante_valores = Object.values(repeticiones_representante)
        repeticiones_representante_valores = repeticiones_representante_valores.sort(function(a, b) {
            return b - a;
        });

        representante_elegido = moda(representante);
        votos_obtenidos_representante = repeticiones_representante[representante_elegido];

		for (let rolito of roles_eleccion) {
			var e = frappe.model.add_child(cur_frm.doc, "Eleccion de Roles", "table_11");
			e.rol = rolito;
			if(rolito === "REPRESENTANTE"){
                if(representante.length =! 0){
                    e.votos_esperados = frm.doc.votantes;
                    e.votos_realizados = votosrealizados;
                    e.votos_obtenidos = votos_obtenidos_representante;
                    e.votos_obtenidos_ = (votos_obtenidos_representante / votosrealizados) * 100;
                    if(repeticiones_representante_valores[0] === repeticiones_representante_valores[1]){
                        msgprint('HAY UN EMPATE EN LA ELECCIÓN DE REPRESENTANTE');
                        e.resultado = "EMPATE"
                    } else {
                        e.persona = representante_elegido
                        e.personas_elegidas = repeticiones_representante_nombres.length
                        e.resultado = "DEFINIDO"
                    }
                } else {

                }
			}
		}
		refresh_field("table_11");
	}