diff --git a/src/knot/zone/semantic-check.c b/src/knot/zone/semantic-check.c
index 1d3c5c4e0bebe0551600b051bd8249c98018a493..261ed70870c127a887828a91a01f15652618a93d 100644
--- a/src/knot/zone/semantic-check.c
+++ b/src/knot/zone/semantic-check.c
@@ -623,7 +623,7 @@ static int check_nsec3_node_in_zone(knot_zone_contents_t *zone,
 
 			if (nsec3_node == NULL) {
 				/* Probably should not ever happen */
-				return ZC_ERR_NSEC3_NOT_FOUND;
+				return KNOT_ERROR;
 			}
 
 			assert(nsec3_previous);
@@ -643,6 +643,8 @@ static int check_nsec3_node_in_zone(knot_zone_contents_t *zone,
 				err_handler_handle_error(handler, node,
 					ZC_ERR_NSEC3_UNSECURED_DELEGATION_OPT,
 				                         NULL);
+				/* We cannot continue from here. */
+				return KNOT_EOK;
 			}
 		}
 	}