# The server could not download what it needs to start

The startup script failed to download the game, the loader, a mod, the modpack installer or another file, so the server never started.

- Code: `source_download_failed`
- Severity: fatal
- Category: Startup
- Server types: Every server type, Velocity, BungeeCord, Waterfall
- Page: https://failures.perland.online/failures/source_download_failed/

## Example log

```text
[init] Resolving type given FABRIC
[mc-image-helper] 17:41:05.218 ERROR : 'install-fabric-loader' command failed. Version is 1.74.0: FailedRequestException: HTTP request of https://meta.fabricmc.net/v2/versions/loader/1.21.4 failed with 503 Service Unavailable
```

## Parameters

| Parameter | Meaning |
| --- | --- |
| `command` | The startup helper's command that failed, such as install-paper, install-fabric-loader, maven-download or get; present when the helper's own error line was read. |
| `artifact` | The Maven coordinates the helper was fetching, such as link.infra.packwiz:packwiz-installer, when the error names them. |
| `url` | The address of the download, when the output prints it. |
| `host` | The site the download went to, taken from the address or from the network error, when either names it. |
| `reason` | Why it failed, when the output shows it, one of dns, connection_refused, connection_lost, timeout, unreachable, tls, or http when the site answered with an error status. |
| `status` | The HTTP status the site answered with, such as 404 or 503; present only when the reason is http. |
| `transient` | Set to true when starting again may work with nothing changed (a network failure, a timeout, HTTP 408, 425, 429 or a 5xx status); absent otherwise. |

## Log lines this page covers

- `'install-paper' command failed. Version is`
- `FailedRequestException: HTTP request of ... failed with 404`
- `Failed to download`
- `Unable to download`
- `Could not download`
- `Could not resolve`
- `Download ... failed`

## What it means

Before the game itself runs, the startup script of the server's Docker image (itzg's `docker-minecraft-server`, and `mc-proxy` for proxies) downloads what the server needs: the server jar (vanilla, Paper, Spigot), the mod loader (Forge, NeoForge, Fabric, Quilt), the modpack installer, mods and plugins from a list. One of those downloads failed, so nothing was installed and the server stopped before it started.

The diagnosis reads the startup helper's line that names the failed command, and counts it as a failed download only when the site answered with an HTTP error or the trace shows a network failure. A command that failed for another reason, such as a file it could not write, is not this issue. It also reads the script's own lines that say it failed to download, retrieve, fetch, resolve, locate or find something.

## Why it happens

- **The site was down or busy.** A 5xx status, a timeout or a lost connection usually clears on its own.
- **The server has no working connection to the internet.** Names do not resolve (`dns`), there is no route (`unreachable`), or a firewall refuses the connection.
- **The version does not exist there.** A 404 from a download site often means the Minecraft or loader version asked for is not published for that software.
- **An address you set is wrong.** A mod, plugin or pack URL with a typing mistake, or a site that no longer exists.
- **A secure connection could not be made** (`tls`): an expired certificate, or a proxy on the network that breaks encrypted connections.

## How to fix

1. Read the reason. If the issue says starting again may work (`transient`), start the server again. If it fails the same way, wait a few minutes: the download site is having trouble.
2. If the address could not be looked up or reached, check the host's own network: from the host, `curl -I https://repo.papermc.io` should answer.
3. **HTTP 404 on the game or the loader:** check the Minecraft version and the loader version. They must exist for the chosen server type.
4. **An address you set** (a mod, a plugin, a modpack URL): open it in a browser. Correct it if it is mistyped or gone.
5. **TLS:** an address you set must open in a browser without a security warning. If it is the software's own download site, the problem is on the host's network.

## In Perland

The issue appears in the server's Diagnosis tab, saying what could not be downloaded and why. When starting again may clear it and the server is stopped, the panel offers to start it again. When the cause is a version that does not exist, change the Minecraft or loader version in Settings; for a server whose versions come from a Git modpack, correct them in the pack's repository and deploy from Sources.

## References

- [Docker Minecraft Server documentation](https://docker-minecraft-server.readthedocs.io/en/latest/)
- [Docker Minecraft Server: server types](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/)
