Things that can cause this error:
1. Setting a minimum step size on your reactornet. IMO you should never do this when you're using the step() method
2. Your tolerances are too small, from what I can see in your code THIS is the culprit
10^-18 on the atol is usually far to small for me, try ~10^-15 (honestly I leave the atol at whatever the default is, and decrease the rtol from 10^-9 to 10^-12)
Essentially this error means that CVODES can't pick a step size small enough (as in, limited by numerical precision of a double) to get error within your tolerances.
Another option (if you really want 10^-18 as the atol) is to put a try {} catch(CVodesErr e) around your step call
when you catch an error increase your atol (i.e. multiply by 10) and try to step again, repeat as many times as necessary (easiest with a goto, but ugly).