diff --git a/server/util.go b/server/util.go
index 03eb8661..ee87f2ed 100644
--- a/server/util.go
+++ b/server/util.go
@@ -9,6 +9,7 @@ import (
 	"net/http"
 	"net/netip"
 	"strings"
+	/*"regexp"*/
 )
 
 var mimeDecoder mime.WordDecoder
@@ -129,7 +130,25 @@ func fromContext[T any](r *http.Request, key contextKey) (T, error) {
 func maybeDecodeHeader(header string) string {
 	decoded, err := mimeDecoder.DecodeHeader(header)
 	if err != nil {
-		return header
+		return cloudflarePriorityIgnore(header)
 	}
-	return decoded
+	return cloudflarePriorityIgnore(decoded)
+}
+
+// Ignore new HTTP Priority header (see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-priority)
+// Cloudflare adds this to requests when forwarding to the backend (ntfy), so we just ignore it.
+// If the Priority header is set to "u=*, i" or "u=*" (by cloudflare), the header will be ignored.
+// And continue searching for another header (x-priority, prio, p) or in the Query parameters.
+func cloudflarePriorityIgnore(value string) string {
+	if strings.HasPrefix(value, "u=") {
+		return ""
+	}
+
+	// The same but with regex
+	/* pattern := `^u=\d+\s*,\s*i|u=\d+$`
+	regex := regexp.MustCompile(pattern)
+	if regex.MatchString(value) {
+		return ""
+	} */
+	return value
 }
diff --git a/util/util.go b/util/util.go
index 4a63e22f..d48487df 100644
--- a/util/util.go
+++ b/util/util.go
@@ -161,11 +161,6 @@ func ParsePriority(priority string) (int, error) {
 	case "5", "max", "urgent":
 		return 5, nil
 	default:
-		// Ignore new HTTP Priority header (see https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-priority)
-		// Cloudflare adds this to requests when forwarding to the backend (ntfy), so we just ignore it.
-		if strings.HasPrefix(p, "u=") {
-			return 3, nil
-		}
 		return 0, errInvalidPriority
 	}
 }