У меня такое не раз было - смотришь на баг, он вроде прям на виду, но чётко понять, в чём косяк, никак не выходит. Причём дело не в явном баге, а словно система сама с собой конфликтует. Особенно часто такое случается с асинхронщиной или когда пересекается куча сторонних библиотек. Пробовал собирать свежие логи, менять формулировку задачи, менять окружение - толку мало. Иногда помогает просто отойти, потом с новыми глазами глянуть. А иногда приходится садиться с дебагером, профайлером и ставить логи практически на каждый шаг, чтобы выдернуть закономерности.
Проблема обычно в том, что плохая тестируемость и запутанная архитектура делают такой баг адским. Когда не изолировать проблему и проект большой - быстро теряешь контекст и сбиваешь с толку и себя, и коллег. Тогда хорошо помогает запускать минимальные стенды, где чётко понятно, что есть и как влияет. Может, у кого-то есть какие-то хитрые методы или тулзы, чтобы быстро разруливать такие "невнятные" баги? Просто кажется, что тут не только навык нужен, но и правильный подход к пониманию сложных состояний и взаимодействий в коде.