Recently, I obtained the merged (7z) MAME 0.231 set from the Internet Archive. Scanning showed that a few sets needed fixing. However, after fixing some 200 sets, I ended up with 60 corrupted sets.
The log showed several entries about insufficient RAM: There is not enough memory (RAM). (0x8007000E: E_OUTOFMEMORY)
My system disk has 20 GB of free memory, and there are 32 GB of RAM in my machine. According to Process Hacker, 24 GB RAM were available at the time of testing.
The issue is impossible to replicate since it does not seem to be connected to specific rom sets. After replacing the corrupted rom sets with the original ones, that needed fixing, and restarting Romcenter, some of the rom sets suddenly were fixed by Romcenter. Apparently, restarting Romcenter fixed the RAM issue temporarily. While attempting to fix the rom sets, the memory issue appeared again quickly. The corrupted rom sets were 32 bytes files with a 7z header but no other content.
I noticed that, once rom sets started corrupting, bigger rom sets corrupted consistently every time I replaced the corrupted 7z archives with the original 7z, refreshed the rom files, and tried to fix the rom sets in question again.
There might also be a connection to the type of archive. All rom sets were solid 7z archives. I "induced" the state when Romcenter started to corrupt rom sets. Then, I re-archived a particular rom set with a lower solid block sizes, starting from a solid block size of 2 GB. An archive with a solid block size of 64 MB was suddenly fixable by Romcenter without memory errors and corruption. The solid block size of 64 MB is not a hard threshold. Further testing showed that sometimes, 32 MB were necessary. A non-solid archive was also fixable without problems.
re-archived a particular rom set