# Troubleshooting

## 403 on signed URLs
- Check that the full query string is preserved by the proxy (`$query_string` in Nginx).
- Ensure `WEBRICK_SIGN_KEY` matches between generator and verifier.
- If using temporary URLs, confirm clock skew and TTL (`signedDefaultTtl`).

## 406 Not Acceptable
- Negotiation middleware rejects unacceptable `Accept` headers. Ensure your client requests supported types.
- Use `Response::auto()` for convenience.

## Weird caches
- Verify `Vary` headers include `Accept-Encoding`/`Accept-Language` as emitted by middleware.
- Avoid stripping or overwriting `Vary` at the proxy/CDN.
