coollabsio/coolify · error · Exception
A server with this IP/Domain already exists in your team.
Error message
A server with this IP/Domain already exists in your team.
What it means
Server Show's syncData(toModel: true) enforces IP uniqueness before saving: Server::where('ip', $this->ip)->where('id', '!=', $this->server->id)->first() found a row, and that row's team_id equals currentTeam()->id. The submitted IP property is reverted to the stored server IP and the save aborts - each team may register a given IP/hostname only once.
Source
Thrown at app/Livewire/Server/Show.php:245
return collect(timezone_identifiers_list())
->sort()
->values()
->toArray();
}
public function syncData(bool $toModel = false)
{
if ($toModel) {
$this->validate();
$this->authorize('update', $this->server);
$foundServer = Server::where('ip', $this->ip)
->where('id', '!=', $this->server->id)
->first();
if ($foundServer) {
$this->ip = $this->server->ip;
if ($foundServer->team_id === currentTeam()->id) {
throw new \Exception('A server with this IP/Domain already exists in your team.');
}
throw new \Exception('A server with this IP/Domain is already in use by another team.');
}
$this->server->name = $this->name;
$this->server->description = $this->description;
$this->server->ip = $this->ip;
$this->server->user = $this->user;
$this->server->port = $this->port;
$this->server->validation_logs = $this->validationLogs;
$this->server->save();
$this->server->settings->connection_timeout = $this->connectionTimeout;
$this->server->settings->is_swarm_manager = $this->isSwarmManager;
$this->server->settings->wildcard_domain = $this->wildcardDomain;
$this->server->settings->is_swarm_worker = $this->isSwarmWorker;
$this->server->settings->is_build_server = $this->isBuildServer;View on GitHub (pinned to 70b9acc424)
Solutions
- Set a unique IP/hostname for this server and save again
- Delete or repurpose the existing server entry in this team that already holds the IP
- If you need one machine for multiple purposes, keep a single server entry and use its destinations/resources
- Clean up duplicate rows (php artisan tinker or the UI) before re-importing
Example fix
// before
$this->server->ip = $this->ip; // no duplicate check
// after
$found = \App\Models\Server::where('ip', $this->ip)
->where('id', '!=', $this->server->id)->first();
if (! $found && $this->ip !== $this->server->ip) {
$this->server->ip = $this->ip;
} Defensive patterns
Strategy: validation
Validate before calling
$found = \App\Models\Server::where('ip', $this->ip)
->where('id', '!=', $this->server->id)->first();
if ($found && $found->team_id === currentTeam()->id) {
// pick a different IP/hostname before submit
} Try / catch
Catch \Exception inside syncData's caller (submit) and dispatch the message; the component reverts $this->ip to the stored value on failure - show that reverted value in the form.
Prevention
- Search the team's server list for the IP before assigning it
- Register one machine once - use resources/destinations for multiple workloads
- Clean up duplicate rows after re-imports
When it happens
Trigger: Editing a server and typing the IP/hostname of another server already registered in the same team (e.g. pointing two entries at 127.0.0.1 or the same host); re-adding a removed server while the old row still exists; DNS name and IP both registered for the same box.
Common situations: Registering both the hostname and the raw IP of one machine; leftovers from a deleted-and-recreated server; import/migration scripts creating duplicate rows.
Related errors
- A server with this IP/Domain is already in use by another te
- Invalid Cron / Human expression for Disk Usage Check Frequen
- Certificate content cannot be empty.
- Invalid Cron / Human expression for Docker Cleanup Frequency
- Invalid timezone.
AI-assisted analysis of coollabsio/coolify@70b9acc424 (2026-08-17).
Data as JSON: /api/errors/c293078cc5a36b70.
Report an issue: GitHub.