[GH-ISSUE #4562] domain name must match pattern "^[^&| @!#%^();:/\\}{=+?<>,~`'"]+$" #2914

Open
opened 2026-02-26 07:37:11 +03:00 by kerem · 14 comments
Owner

Originally created by @grzywek on GitHub (Jun 2, 2025).
Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/4562

Checklist

  • Have you pulled and found the error with jc21/nginx-proxy-manager:latest docker image?
    • Yes
  • Are you sure you're not using someone else's docker image?
    • Yes
  • Have you searched for similar issues (both open and closed)?
    • Yes

Describe the bug
No longer possible to use domain with port in Domain Name because of the error data/domain_names/0 must match pattern "^[^&| @!#%^();:/\\}{=+?<>,~'"]+$`

Nginx Proxy Manager Version
v2.12.3

Expected behavior
It had been working flawlessly for years until one of the recent updates disrupted my configuration

Screenshots
Image

Operating System
Docker

Additional context
This change is completely incomprehensible to me. I had 15 services configured on one subdomain with different ports, e.g., sub.domain.com:5380, sub.domain.com:3001, etc., and they all stopped working after one of the recent updates (to be precise, I lost the ability to edit them via the GUI). Who was bothered by this port? Why force users into a single approach using the default 80/443 ports and differentiating services by domain?

Originally created by @grzywek on GitHub (Jun 2, 2025). Original GitHub issue: https://github.com/NginxProxyManager/nginx-proxy-manager/issues/4562 <!-- Are you in the right place? - If you are looking for support on how to get your upstream server forwarding, please consider asking the community on Reddit. - If you are writing code changes to contribute and need to ask about the internals of the software, Gitter is the best place to ask. - If you think you found a bug with NPM (not Nginx, or your upstream server or MySql) then you are in the *right place.* --> **Checklist** - Have you pulled and found the error with `jc21/nginx-proxy-manager:latest` docker image? - Yes - Are you sure you're not using someone else's docker image? - Yes - Have you searched for similar issues (both open and closed)? - Yes **Describe the bug** No longer possible to use domain with port in Domain Name because of the error `data/domain_names/0 must match pattern "^[^&| @!#%^();:/\\}{=+?<>,~`'"]+$` **Nginx Proxy Manager Version** v2.12.3 **Expected behavior** It had been working flawlessly for years until one of the recent updates disrupted my configuration **Screenshots** ![Image](https://github.com/user-attachments/assets/042c5521-bbe7-4dc1-8ae5-10c6e73f74e9) **Operating System** Docker **Additional context** This change is completely incomprehensible to me. I had 15 services configured on one subdomain with different ports, e.g., sub.domain.com:5380, sub.domain.com:3001, etc., and they all stopped working after one of the recent updates (to be precise, I lost the ability to edit them via the GUI). Who was bothered by this port? Why force users into a single approach using the default 80/443 ports and differentiating services by domain?
Author
Owner

@AlperShal commented on GitHub (Jun 4, 2025):

I have just came across this problem. Came here and last created issue is the same. Interesting you (and I) are the only ones reporting this.

<!-- gh-comment-id:2940136304 --> @AlperShal commented on GitHub (Jun 4, 2025): I have just came across this problem. Came here and last created issue is the same. Interesting you (and I) are the only ones reporting this.
Author
Owner

@jaycedk commented on GitHub (Jun 8, 2025):

Remove you :8083 from your domain.
And add that to port below.

<!-- gh-comment-id:2953688694 --> @jaycedk commented on GitHub (Jun 8, 2025): Remove you :8083 from your domain. And add that to port below.
Author
Owner

@AlperShal commented on GitHub (Jun 8, 2025):

Remove you :8083 from your domain. And add that to port below.

But that's not what we want to do. This was a way to use other ports than 80 and 443 for reverse proxy. Now we can't do that. Target port and source ports are different things.

<!-- gh-comment-id:2953694297 --> @AlperShal commented on GitHub (Jun 8, 2025): > Remove you :8083 from your domain. And add that to port below. But that's not what we want to do. This was a way to use other ports than 80 and 443 for reverse proxy. Now we can't do that. Target port and source ports are different things.
Author
Owner

@tanpro260196 commented on GitHub (Jun 10, 2025):

Can you use Stream for this instead?

<!-- gh-comment-id:2960511677 --> @tanpro260196 commented on GitHub (Jun 10, 2025): Can you use Stream for this instead?
Author
Owner

@AlperShal commented on GitHub (Jun 11, 2025):

Can you use Stream for this instead?

I guess that would work but in the need of custom Nginx conf it still is not enough.

<!-- gh-comment-id:2961259166 --> @AlperShal commented on GitHub (Jun 11, 2025): > Can you use Stream for this instead? I guess that would work but in the need of custom Nginx conf it still is not enough.
Author
Owner

@Veeau commented on GitHub (Aug 6, 2025):

I have this problem also.
Its needed for Plex as the IOS app sends the header as domain.com:443 rather than domain.com so a stream isnt going to work on 443.

<!-- gh-comment-id:3158143017 --> @Veeau commented on GitHub (Aug 6, 2025): I have this problem also. Its needed for Plex as the IOS app sends the header as domain.com:443 rather than domain.com so a stream isnt going to work on 443.
Author
Owner

@AlperShal commented on GitHub (Aug 6, 2025):

I have this problem also. Its needed for Plex as the IOS app sends the header as domain.com:443 rather than domain.com so a stream isnt going to work on 443.

I don't think this issue is relevant to that problem. Port 443 is already being handled by Nginx Proxy Manager (Stream included). You just need to setup SSL.

<!-- gh-comment-id:3160572045 --> @AlperShal commented on GitHub (Aug 6, 2025): > I have this problem also. Its needed for Plex as the IOS app sends the header as domain.com:443 rather than domain.com so a stream isnt going to work on 443. I don't think this issue is relevant to that problem. Port 443 is already being handled by Nginx Proxy Manager (Stream included). You just need to setup SSL.
Author
Owner

@Veeau commented on GitHub (Aug 7, 2025):

I have this problem also. Its needed for Plex as the IOS app sends the header as domain.com:443 rather than domain.com so a stream isnt going to work on 443.

I don't think this issue is relevant to that problem. Port 443 is already being handled by Nginx Proxy Manager (Stream included). You just need to setup SSL.

Its releveant to the error and changes made to NPN because if i use domain.com and not domain.com:443 it doesnt pass the traffic via nginx it sends it via the plex relay service saying behind nginx is offline as its passing a host header of domain.com:443 and with the new changes I cant add this to the gui like I could in previous versions.

I used this to fix plex in an older version of NPN but now trying to do a new install it wont let me add.

Source: https://www.reddit.com/r/PleX/comments/guwy9a/plex_behind_a_proxy_web_works_fine_ios_apps_say/

" EDIT: Solved. For some reason the Plex iOS apps send “plex.domain.com:443” as the text of the Host header. Most systems will leave off the port if it’s 80 or 443. That was causing my HAProxy “match” rule to return false. When I changed my HAProxy rule to be a begins-with search, all is working. " - This applies for Nginx also.

<!-- gh-comment-id:3161963566 --> @Veeau commented on GitHub (Aug 7, 2025): > > I have this problem also. Its needed for Plex as the IOS app sends the header as domain.com:443 rather than domain.com so a stream isnt going to work on 443. > > I don't think this issue is relevant to that problem. Port 443 is already being handled by Nginx Proxy Manager (Stream included). You just need to setup SSL. Its releveant to the error and changes made to NPN because if i use domain.com and not domain.com:443 it doesnt pass the traffic via nginx it sends it via the plex relay service saying behind nginx is offline as its passing a host header of domain.com:443 and with the new changes I cant add this to the gui like I could in previous versions. I used this to fix plex in an older version of NPN but now trying to do a new install it wont let me add. Source: https://www.reddit.com/r/PleX/comments/guwy9a/plex_behind_a_proxy_web_works_fine_ios_apps_say/ " EDIT: Solved. For some reason the Plex iOS apps send “plex.domain.com:443” as the text of the Host header. Most systems will leave off the port if it’s 80 or 443. That was causing my HAProxy “match” rule to return false. When I changed my HAProxy rule to be a begins-with search, all is working. " - This applies for Nginx also.
Author
Owner

@littleblack111 commented on GitHub (Sep 7, 2025):

same, this is a regression.

<!-- gh-comment-id:3263972672 --> @littleblack111 commented on GitHub (Sep 7, 2025): same, this is a regression.
Author
Owner

@KagurazakaIris commented on GitHub (Oct 7, 2025):

Same problem, the network operator closed port 80 and 443 in my network and I had to try other ports.

<!-- gh-comment-id:3375172950 --> @KagurazakaIris commented on GitHub (Oct 7, 2025): Same problem, the network operator closed port 80 and 443 in my network and I had to try other ports.
Author
Owner

@clementbey commented on GitHub (Oct 22, 2025):

Same problem, any update ?

<!-- gh-comment-id:3432965100 --> @clementbey commented on GitHub (Oct 22, 2025): Same problem, any update ?
Author
Owner

@12io commented on GitHub (Nov 13, 2025):

Pulled current version (2.13.4) and this issue still persists. We are also using this extensively at work in some reverse-proxied environments... Currently we fix this via database + config files if we need to make changes.

<!-- gh-comment-id:3529637259 --> @12io commented on GitHub (Nov 13, 2025): Pulled current version (2.13.4) and this issue still persists. We are also using this extensively at work in some reverse-proxied environments... Currently we fix this via database + config files if we need to make changes.
Author
Owner

@poltpolt commented on GitHub (Dec 4, 2025):

same problem when trying to input https://mydomain.com as domain,
when i do mydomain.com it works but not what i want

<!-- gh-comment-id:3611791147 --> @poltpolt commented on GitHub (Dec 4, 2025): same problem when trying to input https://mydomain.com as domain, when i do mydomain.com it works but not what i want
Author
Owner

@grzywek commented on GitHub (Dec 6, 2025):

same problem when trying to input https://mydomain.com as domain, when i do mydomain.com it works but not what i want

why would you need to enter a domain with https:// ?

<!-- gh-comment-id:3619923535 --> @grzywek commented on GitHub (Dec 6, 2025): > same problem when trying to input https://mydomain.com as domain, when i do mydomain.com it works but not what i want why would you need to enter a domain with https:// ?
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nginx-proxy-manager-NginxProxyManager#2914
No description provided.