Когда программа ведёт себя неожиданно, хочется сразу переписать большой фрагмент. Полезнее сначала собрать воспроизводимый пример и проверить предположения.

Пожалуйста, отделяйте личный опыт от общего правила.