I find this way of coding the status really confusing.  Some thoughts:

1) How are the returned lists being used?  If this is really a quiet failure condition, maybe it would be better to log warnings but return nothing.

2) If you must return something, maybe just (a) a list of students that failed and (b) error messages explaining the failure?

We can discuss other possibilities as well.