I tried to run a Column-Generation program with SCIP, using the pricing call-back (a bit similar to the VRP example available online but on a relaxed/continuous Multi-Commodity Flow).
The program runs well while it generates new variables, but as soon as there are no more variables generated the solver crashes. The error returned is "ERROR: pricing was aborted, but no branching could be created!" - note that I did not try to do any branching and all my variables were continuous.
At every call of the scip_redcost function I printed the number of variables created just before the return SCIP_OKAY and got the following kind of results on a toy example:
time | node | left |LP iter|LP it/n|mem/heur|mdpt |vars |cons |rows |cuts |sepa|confs|strbr| dualbound | primalbound | gap | compl.
t 0.0s| 1 | 0 | 0 | - | trivial| 0 | 23 | 43 | 0 | 0 | 0 | 0 | 0 | -- | 4.020402e+07 | Inf | unknown
* 0.0s| 1 | 0 | 3 | - | LP | 0 | 23 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 4.020402e+02 | Inf | unknown
Pricing ends with 3 new variable.
0.0s| 1 | 0 | 12 | - | 746k | 0 | 26 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 4.020402e+02 | Inf | unknown
r 0.0s| 1 | 0 | 12 | - |simplero| 0 | 26 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 6.100000e+01 | Inf | unknown
Pricing ends with 2 new variable.
0.0s| 1 | 0 | 18 | - | 748k | 0 | 28 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 6.100000e+01 | Inf | unknown
r 0.0s| 1 | 0 | 18 | - |simplero| 0 | 28 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 1.500000e+01 | Inf | unknown
Pricing ends with 1 new variable.
0.0s| 1 | 0 | 19 | - | 748k | 0 | 29 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 1.500000e+01 | Inf | unknown
Pricing ends with 2 new variable.
0.0s| 1 | 0 | 20 | - | 749k | 0 | 31 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 1.500000e+01 | Inf | unknown
r 0.0s| 1 | 0 | 20 | - |simplero| 0 | 31 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 1.450000e+01 | Inf | unknown
Pricing ends with 0 new variable.
0.0s| 1 | 0 | 20 | - | 751k | 0 | 31 | 43 | 43 | 0 | 0 | 0 | 0 | -- | 1.450000e+01 | Inf | unknown
[solve.c:4561] ERROR: pricing was aborted, but no branching could be created!
[solve.c:4994] ERROR: Error <-10> in function call
[scip_solve.c:2789] ERROR: Error <-10> in function call
terminate called after throwing an instance of 'SCIPException'
what(): method returned an invalid result code
Aborted (core dumped)
The objective value of 14.5 is indeed the expected minimum, and the columns generated do allow an optimal solution for my problem.
Dumping the transformed problem in the pricers callback function to a .lp file and running it works perfectly and gives the expected result.
As the problem arises outside of the part of the code where we have visibility, I am a bit stuck; if someone encountered a similar problem or has a deep understanding on what is happening I would be very happy to get some insights.