Troubleshooting > Errors on Connector Startup > Error: Failed to start health check server. Address already in use.
Error: Failed to start health check server. Address already in use.
One common cause of connectivity issues is the available ports on the machine running the Connector. If a default port for the Connector is already in use by another process on the machine, errors and exceptions are written to the Connector log. One such port is the health-check port.
By default, the Azure IoT Hub Connector listens on port 9009 for health check queries. If that port is already in when the Connector attempts to open it, the following messages appear in the Connector log:

10:31:52.832 [pool-1-thread-1] INFO c.t.p.a.iot.AzureIotProtocolAdapter -
Azure IoT Protocol Adapter initialized.
10:31:52.833 [pool-1-thread-1] INFO c.t.c.ConnectionServer -
Initializing HealthCheckService
10:31:52.839 [vert.x-eventloop-thread-0] INFO c.t.c.ConnectionServer -
Failed to start health check server:
. . .
java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.
bind(ServerSocketChannelImpl.java:223)
at io.netty.channel.socket.nio.NioServerSocketChannel.
doBind(NioServerSocketChannel.java:130)
at io.netty.channel.AbstractChannel$AbstractUnsafe.
bind(AbstractChannel.java:558)
at io.netty.channel.DefaultChannelPipeline$HeadContext.
bind(DefaultChannelPipeline.java:1358)
at io.netty.channel.AbstractChannelHandlerContext.
invokeBind(AbstractChannelHandlerContext.java:501)
at io.netty.channel.AbstractChannelHandlerContext.
bind(AbstractChannelHandlerContext.java:486)
at io.netty.channel.DefaultChannelPipeline.
bind(DefaultChannelPipeline.java:1019)
at io.netty.channel.AbstractChannel.
bind(AbstractChannel.java:254)
at io.netty.bootstrap.AbstractBootstrap$2.
run(AbstractBootstrap.java:366)
at io.netty.util.concurrent.AbstractEventExecutor.
safeExecute(AbstractEventExecutor.java:163)
at io.netty.util.concurrent.SingleThreadEventExecutor.
runAllTasksFrom(SingleThreadEventExecutor.java:380)
at io.netty.util.concurrent.SingleThreadEventExecutor.
runAllTasks(SingleThreadEventExecutor.java:355)
at io.netty.channel.nio.NioEventLoop.
run(NioEventLoop.java:457)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.
run(SingleThreadEventExecutor.java:897)
at io.netty.util.concurrent.FastThreadLocalRunnable.
run(FastThreadLocalRunnable.java:30)
at java.lang.Thread.run(Thread.java:748)
Solution
Shut down the service that is consuming the listening port, or change the Connector configuration to use a different port, and restart the Connector.
You can change the port number by setting the configuration property, cx-server.health-check.port. The hard-coded default is 9009. Refer to Procedure for Setting Optional Properties.
* 
The Connector loads and caches all configuration settings during startup. Any changes that you make to the configuration when troubleshooting are ignored until the Connector is restarted.