diff --git a/.env.example b/.env.example index aa14c0b..5a93ac2 100644 --- a/.env.example +++ b/.env.example @@ -11,6 +11,7 @@ API_KEY=api_key_optional # TTS_RETRY_INITIAL_MS=250 # TTS_RETRY_MAX_MS=2000 # TTS_RETRY_BACKOFF=2 +# TTS_UPSTREAM_TIMEOUT_MS=285000 # 285 seconds # (Optional) Enable TTS character rate limiting (default is `false`) # TTS_ENABLE_RATE_LIMIT=true diff --git a/docs-site/docs/reference/environment-variables.md b/docs-site/docs/reference/environment-variables.md index 74fed09..0c525c8 100644 --- a/docs-site/docs/reference/environment-variables.md +++ b/docs-site/docs/reference/environment-variables.md @@ -25,6 +25,7 @@ This is the single reference page for OpenReader environment variables. | `TTS_RETRY_INITIAL_MS` | TTS retry | `250` | Tune initial retry delay | | `TTS_RETRY_MAX_MS` | TTS retry | `2000` | Tune max retry delay | | `TTS_RETRY_BACKOFF` | TTS retry | `2` | Tune exponential backoff factor | +| `TTS_UPSTREAM_TIMEOUT_MS` | TTS request timeout | `285000` | Set max upstream TTS request duration before fail-fast | | `TTS_ENABLE_RATE_LIMIT` | Rate limiting | `false` | Set `true` to enable TTS per-user/IP daily character limits | | `TTS_DAILY_LIMIT_ANONYMOUS` | Rate limiting | `50000` | Override anonymous per-user daily character limit | | `TTS_DAILY_LIMIT_AUTHENTICATED` | Rate limiting | `500000` | Override authenticated per-user daily character limit | @@ -113,6 +114,14 @@ Exponential backoff multiplier between retries. - Default: `2` +### TTS_UPSTREAM_TIMEOUT_MS + +Maximum upstream TTS request timeout in milliseconds. + +- Default: `285000` (285 seconds) +- Applies to outbound provider calls from server routes using shared TTS generation +- Increase for slower providers/models; decrease to fail fast and surface retryable errors sooner + ### TTS_ENABLE_RATE_LIMIT Controls TTS character rate limiting in the TTS API. diff --git a/docs-site/versioned_docs/version-v2.0.0/reference/environment-variables.md b/docs-site/versioned_docs/version-v2.0.0/reference/environment-variables.md index daef2bd..152d693 100644 --- a/docs-site/versioned_docs/version-v2.0.0/reference/environment-variables.md +++ b/docs-site/versioned_docs/version-v2.0.0/reference/environment-variables.md @@ -24,6 +24,7 @@ This is the single reference page for OpenReader environment variables. | `TTS_RETRY_INITIAL_MS` | TTS retry | `250` | Tune initial retry delay | | `TTS_RETRY_MAX_MS` | TTS retry | `2000` | Tune max retry delay | | `TTS_RETRY_BACKOFF` | TTS retry | `2` | Tune exponential backoff factor | +| `TTS_UPSTREAM_TIMEOUT_MS` | TTS request timeout | `285000` | Set max upstream TTS request duration before fail-fast | | `TTS_ENABLE_RATE_LIMIT` | Rate limiting | `false` | Set `true` to enable TTS per-user/IP daily character limits | | `TTS_DAILY_LIMIT_ANONYMOUS` | Rate limiting | `50000` | Override anonymous per-user daily character limit | | `TTS_DAILY_LIMIT_AUTHENTICATED` | Rate limiting | `500000` | Override authenticated per-user daily character limit | @@ -110,6 +111,14 @@ Exponential backoff multiplier between retries. - Default: `2` +### TTS_UPSTREAM_TIMEOUT_MS + +Maximum upstream TTS request timeout in milliseconds. + +- Default: `285000` (285 seconds) +- Applies to outbound provider calls from server routes using shared TTS generation +- Increase for slower providers/models; decrease to fail fast and surface retryable errors sooner + ### TTS_ENABLE_RATE_LIMIT Controls TTS character rate limiting in the TTS API. diff --git a/docs-site/versioned_docs/version-v2.0.1/reference/environment-variables.md b/docs-site/versioned_docs/version-v2.0.1/reference/environment-variables.md index daef2bd..152d693 100644 --- a/docs-site/versioned_docs/version-v2.0.1/reference/environment-variables.md +++ b/docs-site/versioned_docs/version-v2.0.1/reference/environment-variables.md @@ -24,6 +24,7 @@ This is the single reference page for OpenReader environment variables. | `TTS_RETRY_INITIAL_MS` | TTS retry | `250` | Tune initial retry delay | | `TTS_RETRY_MAX_MS` | TTS retry | `2000` | Tune max retry delay | | `TTS_RETRY_BACKOFF` | TTS retry | `2` | Tune exponential backoff factor | +| `TTS_UPSTREAM_TIMEOUT_MS` | TTS request timeout | `285000` | Set max upstream TTS request duration before fail-fast | | `TTS_ENABLE_RATE_LIMIT` | Rate limiting | `false` | Set `true` to enable TTS per-user/IP daily character limits | | `TTS_DAILY_LIMIT_ANONYMOUS` | Rate limiting | `50000` | Override anonymous per-user daily character limit | | `TTS_DAILY_LIMIT_AUTHENTICATED` | Rate limiting | `500000` | Override authenticated per-user daily character limit | @@ -110,6 +111,14 @@ Exponential backoff multiplier between retries. - Default: `2` +### TTS_UPSTREAM_TIMEOUT_MS + +Maximum upstream TTS request timeout in milliseconds. + +- Default: `285000` (285 seconds) +- Applies to outbound provider calls from server routes using shared TTS generation +- Increase for slower providers/models; decrease to fail fast and surface retryable errors sooner + ### TTS_ENABLE_RATE_LIMIT Controls TTS character rate limiting in the TTS API. diff --git a/docs-site/versioned_docs/version-v2.1.0/reference/environment-variables.md b/docs-site/versioned_docs/version-v2.1.0/reference/environment-variables.md index 74fed09..0c525c8 100644 --- a/docs-site/versioned_docs/version-v2.1.0/reference/environment-variables.md +++ b/docs-site/versioned_docs/version-v2.1.0/reference/environment-variables.md @@ -25,6 +25,7 @@ This is the single reference page for OpenReader environment variables. | `TTS_RETRY_INITIAL_MS` | TTS retry | `250` | Tune initial retry delay | | `TTS_RETRY_MAX_MS` | TTS retry | `2000` | Tune max retry delay | | `TTS_RETRY_BACKOFF` | TTS retry | `2` | Tune exponential backoff factor | +| `TTS_UPSTREAM_TIMEOUT_MS` | TTS request timeout | `285000` | Set max upstream TTS request duration before fail-fast | | `TTS_ENABLE_RATE_LIMIT` | Rate limiting | `false` | Set `true` to enable TTS per-user/IP daily character limits | | `TTS_DAILY_LIMIT_ANONYMOUS` | Rate limiting | `50000` | Override anonymous per-user daily character limit | | `TTS_DAILY_LIMIT_AUTHENTICATED` | Rate limiting | `500000` | Override authenticated per-user daily character limit | @@ -113,6 +114,14 @@ Exponential backoff multiplier between retries. - Default: `2` +### TTS_UPSTREAM_TIMEOUT_MS + +Maximum upstream TTS request timeout in milliseconds. + +- Default: `285000` (285 seconds) +- Applies to outbound provider calls from server routes using shared TTS generation +- Increase for slower providers/models; decrease to fail fast and surface retryable errors sooner + ### TTS_ENABLE_RATE_LIMIT Controls TTS character rate limiting in the TTS API. diff --git a/docs-site/versioned_docs/version-v2.1.1/reference/environment-variables.md b/docs-site/versioned_docs/version-v2.1.1/reference/environment-variables.md index 74fed09..0c525c8 100644 --- a/docs-site/versioned_docs/version-v2.1.1/reference/environment-variables.md +++ b/docs-site/versioned_docs/version-v2.1.1/reference/environment-variables.md @@ -25,6 +25,7 @@ This is the single reference page for OpenReader environment variables. | `TTS_RETRY_INITIAL_MS` | TTS retry | `250` | Tune initial retry delay | | `TTS_RETRY_MAX_MS` | TTS retry | `2000` | Tune max retry delay | | `TTS_RETRY_BACKOFF` | TTS retry | `2` | Tune exponential backoff factor | +| `TTS_UPSTREAM_TIMEOUT_MS` | TTS request timeout | `285000` | Set max upstream TTS request duration before fail-fast | | `TTS_ENABLE_RATE_LIMIT` | Rate limiting | `false` | Set `true` to enable TTS per-user/IP daily character limits | | `TTS_DAILY_LIMIT_ANONYMOUS` | Rate limiting | `50000` | Override anonymous per-user daily character limit | | `TTS_DAILY_LIMIT_AUTHENTICATED` | Rate limiting | `500000` | Override authenticated per-user daily character limit | @@ -113,6 +114,14 @@ Exponential backoff multiplier between retries. - Default: `2` +### TTS_UPSTREAM_TIMEOUT_MS + +Maximum upstream TTS request timeout in milliseconds. + +- Default: `285000` (285 seconds) +- Applies to outbound provider calls from server routes using shared TTS generation +- Increase for slower providers/models; decrease to fail fast and surface retryable errors sooner + ### TTS_ENABLE_RATE_LIMIT Controls TTS character rate limiting in the TTS API. diff --git a/src/lib/server/tts/generate.ts b/src/lib/server/tts/generate.ts index b23a69c..45bb9ea 100644 --- a/src/lib/server/tts/generate.ts +++ b/src/lib/server/tts/generate.ts @@ -204,7 +204,7 @@ async function runProviderRequest(request: ResolvedServerTTSRequest, signal: Abo apiKey: request.apiKey, baseURL: request.baseUrl, maxRetries: 0, - timeout: Number(process.env.TTS_UPSTREAM_TIMEOUT_MS ?? 45_000), + timeout: Number(process.env.TTS_UPSTREAM_TIMEOUT_MS ?? 285_000), }); const createParams: ExtendedSpeechParams = {