Hi what version of cobrapy are we talking about? 0.5.11 or 0.6.x?
In general infeasible means there is no solution that can fulfill all of the constraints. Sometimes it can also arise when optimizing unbounded functions but that is not common.
Usually it happens when you set a constraint that can not be fulfilled. The two most common cases I have seen are:
- forcing an import or demand reaction to have a non-zero flux without having a consumed reaction (metabolite can only accumulate so there is no steady state and S*v = 0 is violated)
- forcing a minimal value for the objective that can not be obtained (can happen when not taking the solver accuracy into account)
Especially the first one is often observed when using models generated by some upstream algorithm. Sometimes those add import or demand reactions for metabolites contained in the objective function. Thus maximizing the objective forces leaving steady state.