# Common installation issues

{% hint style="warning" %}
**Make sure new IPs are configured&#x20;*****on*****&#x20;your server, not just provisioned&#x20;*****to*****&#x20;your server.**
{% endhint %}

When your server hosting provider provisions you more IPs, someone has to enable them in Ubuntu in order for the MTA to be able to access them.&#x20;

New IPs won't "just work" on your server.

Your server hosting provider most likely didn't touch your server at all, all they did was give your server access to more IPs on the network than it had access to before, and now someone has to tell your server what those IPs are.

ChatGPT can tell you exactly what to do here, or you can try opening a ticket with your hosting provider and see if they will do it for you.&#x20;

If all else fails there's Fiverr.&#x20;

Don't ask us, we'll just ask ChatGPT and tell you what that dude said.&#x20;

Seriously though, we can't do IT related things on your servers and be responsible for them and all the ways we will screw it up just as much as anyone else is going to. You should screw it up yourself, we believe in you 👍.&#x20;

This is what's going to happen when you start Velocity MTA and your IP addresses aren't configured in Ubuntu:&#x20;

{% hint style="danger" %}
**:PANIC::: listen tcp 1.2.3.4:25 Bind: cannot assign requested address**&#x20;
{% endhint %}

This means the IP addresses aren't configured on your server, but you put the IP addresses in conf/ipaddresses, and Velocity MTA can't see them, so it's throwing an error and crashing.&#x20;

{% hint style="warning" %}
**In order for Velocity MTA to start, all of these files need to exist**
{% endhint %}

If any of these files are missing, Velocity MTA will crash with ugly error messages:

* conf/ipaddresses
* conf/receiving\_domains
* conf/mta.conf

{% hint style="warning" %}
**Bind: address already in use**

Port 25 or Port 80 are being blocked by another application sharing this IP address
{% endhint %}

If ports required for Velocity MTA to start are being blocked by another application on the server, you'll see error messages like this and it will fail:

{% code overflow="wrap" %}

```
(7ee39b6ffb050bf61aa2e132da7044e00836d87319ee60751b301f4a613d7132): Error starting  listen tcp4 1.2.3.4:25: bind: address already in use
```

{% endcode %}

{% hint style="warning" %}
**Velocity MTA must be installed on its own IP address and can not share an IP with other applications that may cause port conflicts.**
{% endhint %}

{% hint style="info" %}
Ports needed by Velocity MTA include ports 25, 80, and 81, if any these ports are blocked and unavailable, the platform will fail to start.&#x20;
{% endhint %}

These are common scenarios where another application using the same IP address as Velocity MTA is blocking ports 25 or 80:

* You're running the ESP platform on the same server as Velocity MTA and trying to use the same IP address for both applications. The ESP platform and Velocity MTA must use two different IP addresses in order to share the same server. &#x20;
* The Linux installation you're using came with Postfix out of the box or you have another MTA running such as PowerMTA which is blocking port 25.&#x20;
* You have some type of control panel software the server came pre-installed with such as CloudPanel, CPanel, or Plesk blocking port 80.&#x20;
* You're running a web-based application on the server that isn't necessarily a website but is still accessed using http\:// in a web browser.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.emaildelivery.com/docs/velocity-mta-basics/common-installation-issues.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
