diff --git a/bpf/flows_filter.h b/bpf/flows_filter.h
index 2deee61e65964de52e6ea024910a293143639b52..c1d946769bfe55bc0dad0055d2ce6d1a0ce23c0c 100644
--- a/bpf/flows_filter.h
+++ b/bpf/flows_filter.h
@@ -140,6 +140,9 @@ static __always_inline int do_flow_filter_lookup(flow_id *id, struct filter_key_
                 }
                 break;
             }
+        } else {
+            result = 0;
+            goto end;
         }
 
         if (!is_zero_ip(rule->ip, len)) {
diff --git a/pkg/ebpf/bpf_arm64_bpfel.o b/pkg/ebpf/bpf_arm64_bpfel.o
index b73811ea5361ffc65e9254ef042f9c24d2d9de75..3351e146df205dc68a9ade2286c15b4f35dd90f3 100644
Binary files a/pkg/ebpf/bpf_arm64_bpfel.o and b/pkg/ebpf/bpf_arm64_bpfel.o differ
diff --git a/pkg/ebpf/bpf_powerpc_bpfel.o b/pkg/ebpf/bpf_powerpc_bpfel.o
index 94f67ccb6ed1589104d1100e4692d0e7ae87c7da..fe6e5617df27b1c8be464e02193d2bcf523c9c53 100644
Binary files a/pkg/ebpf/bpf_powerpc_bpfel.o and b/pkg/ebpf/bpf_powerpc_bpfel.o differ
diff --git a/pkg/ebpf/bpf_s390_bpfeb.o b/pkg/ebpf/bpf_s390_bpfeb.o
index 47506cc7d96fc58d5d278e990a4c544a98bb7d6b..81f2a8999e8651a41e67c80fc9794cfbf64d17ef 100644
Binary files a/pkg/ebpf/bpf_s390_bpfeb.o and b/pkg/ebpf/bpf_s390_bpfeb.o differ
diff --git a/pkg/ebpf/bpf_x86_bpfel.o b/pkg/ebpf/bpf_x86_bpfel.o
index 98201800d8893921fc11ca48156471107da3f3bf..c00a90f3e92a63fc1cce5b94842536427d9a84a7 100644
Binary files a/pkg/ebpf/bpf_x86_bpfel.o and b/pkg/ebpf/bpf_x86_bpfel.o differ
diff --git a/pkg/flow/deduper.go b/pkg/flow/deduper.go
index 13db640108c9f38e87676cad9e70577df76f62c1..274cc7eefe423ccd00c760e0382d011b93a31c14 100644
--- a/pkg/flow/deduper.go
+++ b/pkg/flow/deduper.go
@@ -88,6 +88,7 @@ func (c *deduperCache) checkDupe(r *Record, justMark, mergeDup bool, fwd *[]*Rec
 			fEntry.dnsRecord.Flags = r.Metrics.DnsRecord.Flags
 			fEntry.dnsRecord.Id = r.Metrics.DnsRecord.Id
 			fEntry.dnsRecord.Latency = r.Metrics.DnsRecord.Latency
+			fEntry.dnsRecord.Errno = r.Metrics.DnsRecord.Errno
 		}
 		// If the new flow has flowRTT then enrich the flow in the case with the same RTT and mark it duplicate
 		if r.Metrics.FlowRtt != 0 && *fEntry.flowRTT == 0 {
diff --git a/pkg/flow/record.go b/pkg/flow/record.go
index 0d948fcc27dccad8018247d354b185e7a844922d..0d677dca75ac4678ce1aad5ce5107d5bc6a6bb03 100644
--- a/pkg/flow/record.go
+++ b/pkg/flow/record.go
@@ -105,7 +105,6 @@ func Accumulate(r *ebpf.BpfFlowMetrics, src *ebpf.BpfFlowMetrics) {
 	r.DnsRecord.Flags |= src.DnsRecord.Flags
 	if src.DnsRecord.Id != 0 {
 		r.DnsRecord.Id = src.DnsRecord.Id
-		r.DnsRecord.Errno = src.DnsRecord.Errno
 	}
 	if r.DnsRecord.Errno != src.DnsRecord.Errno {
 		r.DnsRecord.Errno = src.DnsRecord.Errno