Fix "Requested backend named 'X' does not exist" or TLS alert errors in Fastly Compute@Edge. Use when: (1) Backend works locally but fails in production with "backend does not exist", (2) TLS alert received (alert_id=0) errors when calling external APIs from Fastly, (3) Backends defined in fastly.toml aren't available after deployment. The fastly.toml [[backends]] section only applies during initial service creation - existing services require backends to be added via CLI or API with proper S...
Scanned 9/3/2026
Install to Claude Code
npx -y skills add divinevideo/divine-mobile --skill fastly-compute-backend-production-setup --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Fastly Compute Backend Production Setup?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/divinevideo-fastly-compute-backend-production-setup-divine-mobile)More formats (shields.io, HTML) on the badges page.
---
name: fastly-compute-backend-production-setup
description: |
Fix "Requested backend named 'X' does not exist" or TLS alert errors in Fastly Compute@Edge.
Use when: (1) Backend works locally but fails in production with "backend does not exist",
(2) TLS alert received (alert_id=0) errors when calling external APIs from Fastly,
(3) Backends defined in fastly.toml aren't available after deployment. The fastly.toml
[[backends]] section only applies during initial service creation - existing services
require backends to be added via CLI or API with proper SSL/SNI configuration.
author: Claude Code
version: 1.0.0
date: 2025-01-28
---
# Fastly Compute Backend Production Setup
## Problem
Backends defined in `fastly.toml` work during local development with `fastly compute serve`
but return "Requested backend named 'X' does not exist" errors in production after deployment
with `fastly compute publish`.
## Context / Trigger Conditions
- Error: `Requested backend named 'funnelcake' does not exist`
- Error: `TLS alert received (alert_id=0)` when connecting to HTTPS backends
- Backend works with `fastly compute serve` locally
- `fastly.toml` has `[[backends]]` section properly configured
- Service was created before the backend was added to fastly.toml
## Root Cause
The `[[backends]]` section in `fastly.toml` is only processed during **initial service creation**
via the `[setup]` configuration. Once a service exists, changes to backends in fastly.toml
are ignored - you must add/modify backends through the Fastly CLI or API.
From the Fastly CLI output:
> INFO: Processing of the fastly.toml [setup] configuration happens only for a new service.
> Once a service is created, any further changes to the service or its resources must be
> made manually.
## Solution
### Step 1: Create the backend via CLI
```bash
fastly backend create \
--service-id YOUR_SERVICE_ID \
--version active \
--autoclone \
--name backend-name \
--address api.example.com \
--port 443 \
--override-host api.example.com \
--use-ssl \
--ssl-cert-hostname api.example.com \
--ssl-sni-hostname api.example.com
```
Key flags:
- `--autoclone`: Creates a new version automatically
- `--ssl-cert-hostname`: Required for SSL certificate validation
- `--ssl-sni-hostname`: Required for TLS SNI (fixes alert_id=0 errors)
### Step 2: Activate the new version
```bash
fastly service-version activate --service-id YOUR_SERVICE_ID --version VERSION_NUMBER
```
### Step 3: Verify backend exists
```bash
fastly backend list --service-id YOUR_SERVICE_ID --version active
```
### Step 4: Redeploy your code
After adding the backend, redeploy to ensure the code and backend are in the same version:
```bash
fastly compute publish
```
Then verify backends still exist in the new version:
```bash
fastly backend list --service-id YOUR_SERVICE_ID --version active
```
## Verification
1. Check logs with `fastly log-tail --service-id YOUR_SERVICE_ID`
2. Make a request that uses the backend
3. Confirm no "backend does not exist" or TLS errors in logs
## Example
Given this fastly.toml (which works locally but not in production):
```toml
[[backends]]
name = "funnelcake"
address = "relay.dvines.org"
port = 443
override_host = "relay.dvines.org"
use_ssl = true
```
Add the backend to an existing service:
```bash
# Create backend with SSL properly configured
fastly backend create \
--service-id WfOrPTFYmwwxRvqrfralLA \
--version active \
--autoclone \
--name funnelcake \
--address relay.dvines.org \
--port 443 \
--override-host relay.dvines.org \
--use-ssl \
--ssl-cert-hostname relay.dvines.org \
--ssl-sni-hostname relay.dvines.org
# Activate the new version
fastly service-version activate --service-id WfOrPTFYmwwxRvqrfralLA --version 49
# Redeploy code
fastly compute publish
```
## Notes
- Each `fastly compute publish` creates a new version that inherits backends from the previous active version
- If you need different backends for different environments, consider using environment variables or separate services
- The `--autoclone` flag is essential - you cannot modify an active version directly
- Backend names in your code must exactly match the `--name` parameter
## Related Errors
- `Requested backend named 'X' does not exist` - Backend not created in service
- `TLS alert received (alert_id=0)` - Missing SNI hostname configuration
- `Mandatory SSL cert checks require specifying cert hostname` - Missing ssl-cert-hostname
## References
- [Fastly Compute backends documentation](https://www.fastly.com/documentation/reference/compute/fastly-toml/#backends)
- [Fastly CLI backend commands](https://www.fastly.com/documentation/reference/cli/backend/)
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!