Can't access Bitbucket Server through Proxy with NumberFormatException

Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Problem

When access Bitbucket Server through a proxy there is an HTTP 500 error and an additional message saying

1 For input string: " example.net" Please see your system administrator." Note the leading whitespace on the FQDN of the host.

The following error will appear in the atlassian-bitbucket-server.log

1 2 3 4 5 6 7 2016-11-17 10:30:41,489 ERROR [http-nio-7990-exec-4] bstuart @7WP2NNx630x330x0 1ab83hf :24.113.206.169,10.0.0.42 "POST /projects HTTP/1.0" c.a.s.i.w.HandlerExceptionResolverImpl For input string: " example.net" java.lang.NumberFormatException: For input string: " example.net" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_102] at java.lang.Integer.parseInt(Integer.java:569) ~[na:1.8.0_102] at java.lang.Integer.parseInt(Integer.java:615) ~[na:1.8.0_102] at org.springframework.web.util.UriComponentsBuilder.adaptFromForwardedHeaders(UriComponentsBuilder.java:691) ~[spring-web-4.3.2.RELEASE.jar:4.3.2.RELEASE] at org.springframework.web.util.WebUtils.isSameOrigin(WebUtils.java:833) ~[spring-web-4.3.2.RELEASE.jar:4.3.2.RELEASE]

It appears that there is a leading white space in front of the FQDN.

Cause

X-Forwarded-Host header has bad data and your proxy configuration may look like this.

1 2 3 proxy_set_header X-Forwarded-Host: $host; proxy_set_header X-Forwarded-Server: $host; proxy_set_header X-Forwarded-For: $proxy_add_x_forwarded_for;

The Spring framework will split the X-Forwarded-Host header if it has a colon and tries to parse the second part as an Integer since it expects what falls after the colon to be a port. The header is coming in as : example.net and then Spring tries to parse " example.net" as an Integer and thus you get a NumberFormatException. More information can be found at UriComponentsBuilder.java.

Resolution

Remove the colons from your configuration and restart the proxy. Your configuration should look like this.

1 2 3 proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Updated on April 15, 2025

Still need help?

The Atlassian Community is here for you.