Found a case where a mod is exactly the same, but because of how the core system evaluates mod mismatch of same version, it can be possible for a startup setting to cause a same version mod mismatch error.
The root cause is if a require is conditional on a startup setting, then the .lua file that was never required previously is NOT included in the CRC calculation, and instead of getting a setting mismatch error as expected, a same version mod mismatch error instead happens.
The problem was first found in Robot Attrition version 0.5.13, and happens in the case of the "Robot Repair" startup setting being different between server and client.
Same version mod mismatch overrides mod settings mismatch
Re: Same version mod mismatch overrides mod settings mismatch
Thanks for the report however unfortunately this is how it has to work. There has been a section on the wiki about startup settings and requires since they were first added to the game: https://wiki.factorio.com/Tutorial:Mod_settings#Tips and viewtopic.php?p=207275
The root issue is: the settings can not be meaningfully compared until the game has verified the mods are the same. If the mods are not the same then the settings being the same or not doesn't mean anything. However due to the issue you discovered the settings can change if the game sees mods as the same.
The solution is for mods to never conditionally require things based off mod startup settings (as mentioned on the wiki).
The root issue is: the settings can not be meaningfully compared until the game has verified the mods are the same. If the mods are not the same then the settings being the same or not doesn't mean anything. However due to the issue you discovered the settings can change if the game sees mods as the same.
The solution is for mods to never conditionally require things based off mod startup settings (as mentioned on the wiki).
If you want to get ahold of me I'm almost always on Discord.