Symptom: the Sushi Packer technology shows "Unavailable" even though every prerequisite visible in the tech tree is already researched. The missing prerequisite is actually invisible.
What happens: in prototypes/tier.lua, tech_requirements() collects, for each recipe ingredient, every technology that unlocks it, and add_prerequisite() accepts technologies whose prototype has enabled = false. A disabled technology can never be researched, so the tech is blocked forever — and because that technology is hidden too, the tech tree shows nothing red.
Repro (quite common combination, I think): sushi-packer 0.2.25 + real-industrial-chemistry 1.1.0 on Factorio 2.1.24. RIC deliberately hides and disables vanilla steel-processing and, during data-updates, rewrites other technologies' prerequisites to ric-steel-processing. relink() runs in data-final-fixes, so it comes after that rewrite and re-adds steel-processing, because the recipe needs steel-chest. Final prerequisites end up as { logistics, steel-processing, ric-steel-processing, electronics }, with steel-processing permanently enabled = false.
One-line fix, in add_prerequisite() so both make() and relink() are covered:
local function add_prerequisite(name)
local tech = raw.technology[name]
if tech and tech.enabled == false then return end -- can never be researched
if not prerequisite_set[name] then ... end
end
Ignoring technologies that have neither unit nor research_trigger might also catch other overhaul mods doing the same thing.
Happy to test a build if useful — I can reproduce it on demand. Thanks for the mod either way.