By looking at the code, it seems like the mod just doesn't handle items with no subgroup correctly at all (despite trying to).
At shared.lua:193 it creates an item with subgroup = "ic-" .. (base_item.subgroup or this_item),
But it never creates that subroup. It does create ic-load-whatever and ic-unload-whatever, but not ic-whatever.
The ic-whatever subgroups are only generated from existing subgroups in container-subgroups.lua, so it doesn't work if the item had no subgroup.
It is likely this report https://mods.factorio.com/mod/IntermodalContainers/discussion/67da1b2d34f9ab31507769c6
is also the same issue, but the report doesn't have enough context to tell, and i think didn't even copy the error message properly.
Also this function
local function subgroup_exists(subgroup)
for _, sg in pairs(data.raw["item-subgroup"]) do
if sg.name == subgroup then return true end
end
return false
end
shouldn't exist, it should be replaced with data.raw["item-subgroup"][subgroup], a single lookup instead of iterating over all subgroups every time its called (a lot).