I have three versions of Psi4 that I have been running the same frequency calculation on: v. 1.5 (Git: Rev {HEAD} e9f4d6d) and v. 1.7 (Git: Rev {HEAD} 6ce35a5), and v. 1.8.2. Using 1.5, I obtain all real vibrational values, while for the two newer versions I obtain a low imaginary frequency. This involves molecules containing iodine. Below is an example input of such a molecule. In every case that I checked, the frequencies computed with 1.5 are real, while those using the more resent version have at least one imaginary. This input structures are coming from CCSD(T)/aVQZ structures (https://doi.org/10.1021/ct301064t). This holds true for the def2-TZVPD basis sets and also for aug-cc-pvtz-pp (for iodine and with aug-cc-pvtz being used for first-row atoms).
Are you using dertype='energy' with the more recent versions (the ones giving imaginary frequencies?
Numerical Hessians can run into issues of numerical stability (especially finite-difference by energy; especially low frequency modes). I found the example you shared to be unstable - changing the finite-difference stencil or step size also results in large changes in the frequencies.
When using finite-difference of gradients (only available with ECPs in recent versions), I find the results for the example you shared are much more stable.
Yes, I just confirmed that I used dertype='energy' with v 1.7.
I did not consider altering any of the default parameters, so I appreciate the suggestions. If I identified the correct parameters for what you mentioned, I tried DISP_SIZE 0.007, and ended up obtaining all real frequencies using v. 1.7. I also separately tried POINTS 5, and obtained an imaginary vibration but with a different magnitude.
Let me also clarify a statement I made earlier - the original structures are coming from CCSD(T)/aVQZ. However, I reoptimize them at the levels that I am investigating (e.g., MP2/def2-TZVPD) prior to the frequency analysis.
Again, thanks - I appreciate it. This helps me consider my approach and how to interpret the results.