coollabsio/coolify · error · RuntimeException
Repository does not exist. Please check your repository URL
Error message
Repository does not exist. Please check your repository URL and try again.
What it means
Same 'fatal: repository ... does not exist' Git error, but raised through a non-deploy-key auth type (token, GitHub App, public HTTPS). Git could not resolve/read the repository at the given URL with the available credential, so Coolify surfaces it as 'Repository does not exist' — the URL/credential pairing is wrong, independent of deploy keys.
Source
Thrown at app/Models/Application.php:2172
"cat .$workdir$composeFile",
]);
}
try {
$composeFileContent = instant_remote_process($commands, $this->destination->server);
} catch (\Exception $e) {
// Restore original values on failure only
$this->docker_compose_location = $initialDockerComposeLocation;
$this->base_directory = $initialBaseDirectory;
$this->save();
if (str($e->getMessage())->contains('No such file')) {
throw new RuntimeException("Docker Compose file not found at: $workdir$composeFile (branch: {$this->git_branch})<br><br>Check if you used the right extension (.yaml or .yml) in the compose file name.");
}
if (str($e->getMessage())->contains('fatal: repository') && str($e->getMessage())->contains('does not exist')) {
if ($this->deploymentType() === 'deploy_key') {
throw new RuntimeException('Your deploy key does not have access to the repository. Please check your deploy key and try again.');
}
throw new RuntimeException('Repository does not exist. Please check your repository URL and try again.');
}
throw new RuntimeException('Failed to read the Docker Compose file from the repository.');
} finally {
// Cleanup only - restoration happens in catch block
$commands = collect([
"rm -rf /tmp/{$uuid}",
]);
instant_remote_process($commands, $this->destination->server, false);
}
if ($composeFileContent) {
$this->docker_compose_raw = $composeFileContent;
$this->save();
$parsedServices = $this->parse();
if ($this->docker_compose_domains) {
$this->reconcileDockerComposeDomains($parsedServices);
}
return [View on GitHub (pinned to 70b9acc424)
Solutions
- Correct the repository URL in the application's source settings (owner/name exact, correct host).
- If the repo is private, refresh the credential: new PAT with repo scope, or reinstall the GitHub App for that org/user.
- Run git ls-remote on the URL from the destination server to reproduce the exact failure.
- After an org/repo rename, update the URL on every application that referenced the old path.
Defensive patterns
Strategy: validation
Validate before calling
// Validate URL shape and access before queueing a deployment
if (! ValidGitRepositoryUrl::validate($application->git_repository)) { /* reject bad URL */ }
$status = $application->getGitRemoteStatus(deployment_uuid: $uuid);
if (! $status['is_accessible']) { /* verify owner/name and token/App installation */ } Try / catch
catch (RuntimeException $e) { if (str_contains($e->getMessage(), 'Repository does not exist')) { halt; ask user to fix URL or credential scope; do not retry unchanged. } else { throw $e; } } Prevention
- After org/repo renames, update application URLs immediately (set up a rename checklist).
- Use the connection test in app settings whenever credentials change.
- Scope tokens to the orgs you deploy from and monitor their expiry.
When it happens
Trigger: Typo'd repository URL (wrong owner, missing .git where required, stale org name after rename); private repo accessed with a token lacking scope or an expired token; GitHub App not installed on the target account/org; HTTP URL for an SSH-only internal Git.
Common situations: Organization or repository renamed and the stored URL now 404s; personal access token expired or revoked; GitHub App installation removed by an org admin; migrating from github.com to Enterprise with stale URLs.
Related errors
- Failed to read Git source. Please verify repository access a
- Your deploy key does not have access to the repository. Plea
- Private key not found. Please add a private key to the appli
- Docker Compose file not found at: $workdir$composeFile (bran
- Failed to read the Docker Compose file from the repository.
AI-assisted analysis of coollabsio/coolify@70b9acc424 (2026-08-17).
Data as JSON: /api/errors/3893772dfc0d4418.
Report an issue: GitHub.