Fix "Fastly error: unknown domain" 500 errors when custom domains return "Domain Not Found" despite being created with domain-v1 CLI. Use when: (1) fastly domain-v1 create succeeds but domain returns 500, (2) Domain shows activated:false in API response, (3) Classic domain API returns "deprecated" error, (4) Custom domain works on edgecompute.app but not on your domain. Covers Fastly Compute domain setup post-September 2025.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add divinevideo/divine-mobile --skill fastly-domain-v1-activation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fastly Domain V1 Activation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/divinevideo-fastly-domain-v1-activation-divine-mobile)More formats (shields.io, HTML) on the badges page.
---
name: fastly-domain-v1-activation
description: |
Fix "Fastly error: unknown domain" 500 errors when custom domains return "Domain Not Found"
despite being created with domain-v1 CLI. Use when: (1) fastly domain-v1 create succeeds
but domain returns 500, (2) Domain shows activated:false in API response, (3) Classic
domain API returns "deprecated" error, (4) Custom domain works on edgecompute.app but
not on your domain. Covers Fastly Compute domain setup post-September 2025.
author: Claude Code
version: 1.0.0
date: 2026-02-01
---
# Fastly Domain-v1 Activation for Compute Services
## Problem
After creating a custom domain with `fastly domain-v1 create --fqdn example.com --service-id XXX`,
the domain returns a 500 error: "Fastly error: unknown domain: example.com. Please check that
this domain has been added to a service." The edgecompute.app URL works fine.
## Context / Trigger Conditions
- Classic domain API returns: "The classic domains APIs are deprecated. Please use the domain management API"
- `fastly domain-v1 create` succeeds with domain-id and service-id
- HTTP request to custom domain returns 500 "Domain Not Found"
- Checking domain via API shows `"activated": false, "verified": false`
- The auto-generated edgecompute.app domain works correctly
## Solution
### Step 1: Create the domain (if not already done)
```bash
fastly domain-v1 create --fqdn example.com --service-id YOUR_SERVICE_ID
```
### Step 2: Create TLS subscription for HTTPS
```bash
fastly tls-subscription create --domain example.com
```
### Step 3: Get DNS configuration requirements
```bash
curl -s -H "Fastly-Key: $(fastly profile token)" \
"https://api.fastly.com/tls/subscriptions/SUBSCRIPTION_ID?include=tls_authorizations" | jq
```
Look for the `challenges` array in the response. You'll see options like:
- `managed-http-a`: A records pointing to Fastly IPs (use for apex domains)
- `managed-http-cname`: CNAME to `x.sni.global.fastly.net` (use for subdomains)
- `managed-dns`: ACME challenge CNAME for `_acme-challenge.example.com`
### Step 4: Configure DNS
For apex domains, add A records:
```
example.com → 151.101.1.242
example.com → 151.101.65.242
example.com → 151.101.129.242
example.com → 151.101.193.242
```
For subdomains, use CNAME:
```
www.example.com → x.sni.global.fastly.net
```
### Step 5: Wait for automatic activation
Once DNS propagates, Fastly automatically:
1. Verifies domain ownership via HTTP challenge
2. Sets `verified: true`
3. Sets `activated: true`
4. Issues TLS certificate (state changes from "pending" to "issued")
This typically happens within 1-5 minutes after DNS propagation.
### Step 6: Verify activation status
```bash
# Check domain status
curl -s -H "Fastly-Key: $(fastly profile token)" \
"https://api.fastly.com/domain-management/v1/domains/DOMAIN_ID" | jq
# Should show:
# "activated": true,
# "verified": true
# Check TLS status
fastly tls-subscription describe --id SUBSCRIPTION_ID
# State should be "issued"
```
## Verification
```bash
# Test HTTP (should redirect to HTTPS)
curl -I http://example.com
# Expected: 308 Permanent Redirect to https://
# Test HTTPS
curl -s https://example.com | head -20
# Expected: Your site content
```
## Example
```bash
# 1. Create KV store and link to service
fastly kv-store create --name my-content
fastly resource-link create --resource-id KV_STORE_ID --service-id SERVICE_ID --version latest --autoclone
# 2. Build and deploy
fastly compute publish
# 3. Add custom domain
fastly domain-v1 create --fqdn mysite.com --service-id SERVICE_ID
# Output: Created domain 'mysite.com' (domain-id: ABC123, service-id: XYZ789)
# 4. Set up TLS
fastly tls-subscription create --domain mysite.com
# Output: Created TLS Subscription 'SUB123' (Authority: certainly, Common Name: mysite.com)
# 5. Configure DNS with A records (apex) or CNAME (subdomain)
# 6. Wait ~2-5 minutes for verification
# 7. Site is live at https://mysite.com
```
## Notes
- **Post-September 2025**: The `fastly domain create` command (classic API) is deprecated. Use `fastly domain-v1` instead.
- **No manual activation**: Unlike classic domains, domain-v1 domains activate automatically after DNS verification. There's no explicit "activate" API call.
- **Service version independence**: Domain-v1 creates "versionless domains" that aren't tied to a specific service version. You don't need to clone/activate versions to add domains.
- **TLS is separate**: Domain creation and TLS certificate management are separate operations. You can have a domain without TLS (HTTP only) but most setups want both.
- **Fastly IPs are global**: The A record IPs (151.101.x.242) are Fastly's anycast addresses and route to the nearest edge node.
## References
- [Fastly Domain Management API](https://www.fastly.com/documentation/reference/api/domain-management/domains/)
- [Working with versionless domains](https://www.fastly.com/documentation/guides/getting-started/domains/working-with-domains/working-with-domains/)
- [domain-v1 CLI reference](https://www.fastly.com/documentation/reference/cli/domain-v1/)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!