appwrite/appwrite · error · AppwriteException
{} Verify your DNS records are correctly configured and try
Error message
{}
Verify your DNS records are correctly configured and try again.
If they're correct and it still fails, please retry after sometime. DNS records can take up to 48 hours to propagate.
What it means
Error "{} Verify your DNS records are correctly configured and try again. If they're correct and it still fails, please retry after sometime. DNS records can take up to 48 hours to propagate. " thrown in appwrite/appwrite.
Source
Thrown at src/Appwrite/Platform/Workers/Certificates.php:515
$isMainDomain = !isset($mainDomain) || $domain->get() === $mainDomain;
$isAppwriteOwned = $rule->getAttribute('owner') === 'Appwrite';
// Skip DNS verification for the main domain and Appwrite-owned subdomains
// (auto-generated under _APP_DOMAIN_FUNCTIONS / _APP_DOMAIN_SITES). Appwrite
// created those subdomains itself; they typically rely on a wildcard A/AAAA
// record rather than a per-subdomain CNAME to _APP_DOMAIN_TARGET_CNAME.
if ($isMainDomain || $isAppwriteOwned) {
// TODO: Would be awesome to check A/AAAA record here. Maybe dry run?
return;
}
try {
$this->verifyRule($rule);
} catch (AppwriteException $err) {
$msg = $err->getMessage() . "\n";
$msg .= "Verify your DNS records are correctly configured and try again.\n";
$msg .= "If they're correct and it still fails, please retry after sometime. DNS records can take up to 48 hours to propagate.\n";
throw new AppwriteException($err->getType(), $msg);
}
}
/**
* Get main domain. Needed as we do different checks for main and non-main domains.
*
* @return null|string Returns main domain. If null, there is no main domain yet.
*/
private function getMainDomain(): ?string
{
$envDomain = System::getEnv('_APP_DOMAIN', '');
if (!empty($envDomain) && $envDomain !== 'localhost') {
return $envDomain;
}
return null;
}
View on GitHub (pinned to ce3a85157f)
Solutions
- Verify the domain's CNAME record points to the value configured in _APP_DOMAIN_TARGET_CNAME (or that the A/AAAA record resolves to this server's IP).
- Wait and retry: DNS changes can take up to 48 hours to propagate before certificate issuance succeeds.
- Check the certificates worker container logs for the underlying verification error detail.
When it happens
Trigger: Thrown at src/Appwrite/Platform/Workers/Certificates.php:523 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of appwrite/appwrite@ce3a85157f (2026-08-18).
Data as JSON: /api/errors/20142b00d656eb74.
Report an issue: GitHub.