When there is a failed call to Grape.resolve(), GrapeIvy.resolve() hangs onto a reference to the IvyGrabRecord for the failed dependency. When subsequent resolve() calls are made, those failed records are still there, so it will continue to fail from that point on.
Note that GrapeIvy.grab() cleans up correctly on a failed grab.
This defect is affecting the Apache TinkerPop Gremlin Console. Find more details here. https://issues.apache.org/jira/browse/TINKERPOP3-906