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 5/27/2026
Install via CLI
openskills install divinevideo/divine-mobile---
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/)
No comments yet. Be the first to comment!