So I encountered this problem again, luckily I had verbosity set to "debug". The log shows the following when I try to save the file in the left pane of v2.4.2:
D: 17:10:36,866 formats.id3._save:371: Saving file 'M:
Music - Classical & Opera
L
Luciano Pavarotti
Highlights from the Grammy Album Volume 1
*07 - O sole mio - Torna a surriento - Nessum dorma.mp3*'
D: 17:10:36,872 file.update:635: Updating file <MP3File '06 - La favola dello zar saltan_ Il volo del carbrone.mp3'>
D: 17:10:37,065 file._save_and_rename:336: Not removing empty directory: M:\Music - Classical & Opera\L\Luciano Pavarotti\Highlights from the Grammy Album Volume 1 is not empty
E: 17:10:37,066 util.thread.run:64: Traceback (most recent call last):
File "picard\util\thread.py", line 60, in run
File "picard\file.py", line 339, in _save_and_rename
File "picard\file.py", line 504, in _save_images
AttributeError: 'NoneType' object has no attribute 'save'
D: 17:10:37,070 file.update:635: Updating file <MP3File '07 - O sole mio - Torna a surriento - Nessum dorma.mp3'>
I noticed that it is referring to the previous file in the middle - and this pattern is the same for all of the files on the album.
Again I tried to save the very same files in v2.3.2 and it worked fine:
D: 17:09:12,433 file.update:623: Updating file <MP3File '07 - O sole mio - Torna a surriento - Nessum dorma.mp3'>
So this thing is merged and the bug itself fixed with this. Thanks a lot for reporting this and providing the details. This is one of the hard to find special cases