В принципе, во всех словарях эти слова считаются синонимичными, но на практике есть небольшая разница:
Опять - повторение какого-то действия в точности и получение в итоге того же исхода, что и в изначальном действии.
Снова - повторение действия с сначала и получение в итоге нового результата. Возможно, с учётом предыдущих ошибок.
Отсюда и выражение "не опять(повторять предыдущие ошибки), а снова(сделать всё по-новому)"
Я его сегодня употребила именно с таким смыслом.