It's very strange. I tried to track it down by disabling the new/updates mods above, and when disabling condensing-agricultural-tower, there's no crash and everything works.
However, enabling only the bare minimum vanilla+pelagos(+deps)+condensing-agri does NOT crash, too.
So it's a more complicated interaction.
I added a few more loglines to Pelagos' barreling, and what I noticed when I deactivate condensing-agri (but with my original full mod list), there does not even occur a barreling handling from Pelagos' scripts for lubricant where it enters https://github.com/Talandar99/pelagos/blob/1183939508c178106312e6de04023ab40308dd9f/prototypes/recipes/barreling.lua#L147.
After some more logging and digging and diffing the outputs of Factorio's logs between working and non-working output, I've noticed that when I add condensing-agricultural-tower, there's quality lubricant fluids added. uncommon-lubricant, rare-lubricant etc.
But those are introduced by the mod quality-plants, or at least that mod adds a ton of plants with quality, and I believe they wrongly pick up lubricant. That's probably a bug there, I'll report it as soon as I understand it.
So, when I EITHER deactivate condensing OR quality-plants, with all other mods the same including Pelagos, Factorio starts. Just with both combined it crashes.
So it's gotta be this: https://github.com/Syen-ce/condensing-agricultural-tower/blob/main/data-updates.lua; for each of these three, there's those "quality-fluids" added (uncommon-lubricant, uncommon-steam, uncommon-water).
condensing-agri adds those fluids as minable results, then probably quality-plants thinks that's a seed of a plant, and then they create their quality variants.
And then, e.g. uncommon-lubricant's icon properties look like this when Pelagos is processing them:
icons = {
{
icon = "base/graphics/icons/fluid/lubricant.png"
},
{
icon = "quality/graphics/icons/quality-uncommon.png",
scale = 0.25,
shift = {
-10,
10
}
}
},
(because, of course, quality-plants adds the quality-icon).
Now, it's an array, whereas for vanilla lubricant, it's just icon = "__base__/graphics/icons/fluid/lubricant.png". Thus, Pelagos enters https://github.com/Talandar99/pelagos/blob/1183939508c178106312e6de04023ab40308dd9f/prototypes/recipes/barreling.lua#L147.
And vanilla lubricant hat no icon_size set (which I find a bit strange), so uncommon-lubricant doesn't, too.
But in https://github.com/Talandar99/pelagos/blob/1183939508c178106312e6de04023ab40308dd9f/prototypes/recipes/barreling.lua#L147, you pass the fluid's icon_size as 4th argument to util.combine_icons. But this is nil
So, this https://github.com/wube/factorio-data/blob/5ab7a49559f59edb3527c52166055d00d8b7a92a/core/lualib/util.lua#L361 crashes, because icon_to_add.icon_size is nil and the fallback default_icon_size is nil, too.
I'm not sure if it's correct for Pelagos to pass fluid.icon_size this way when it's nil, it probably should pass a valid value. If you want to support liquids with an icons array set but having no icon_size set (don't know whether one could argue that this is even valid according to Factorio's APIs or not).
But the root cause is in the other mods I would say. I mean quality fluids are ridiculous in the first place, but I think those are not intentionally created by them.
Soooo... I think you could mull over the default_icon_size thing, but I don't see more than that... Maybe you come up with other aspects though and can use this chance to improve something. I'll report it in the other mods.
Thanks for your time. :-D