diff --git a/lib/resolve.c b/lib/resolve.c
index 23d4744408cb142e77b279ae83c521066e04738b..92cee2d76529652599c0c5e2824469fe00075a6c 100644
--- a/lib/resolve.c
+++ b/lib/resolve.c
@@ -347,6 +347,8 @@ int kr_resolve_consume(struct kr_request *request, knot_pkt_t *packet)
 	/* Pop query if resolved. */
 	if (qry->flags & QUERY_RESOLVED) {
 		kr_rplan_pop(rplan, qry);
+	} else { /* Clear query flags for next attempt */
+		qry->flags &= ~QUERY_CACHED;
 	}
 
 	knot_overlay_reset(&request->overlay);