From 152a95941a20eb2eb7a096373db4e010bab34b6f Mon Sep 17 00:00:00 2001 From: bfcs <52602045+bfcs@users.noreply.github.com> Date: Sun, 1 Mar 2026 23:40:45 +0800 Subject: [PATCH] fix(translation): handle missing Cloudflare context on non-Cloudflare deployments (e.g., Vercel) (#3433) * fix(translation): handle missing Cloudflare context on non-Cloudflare deployments (e.g., Vercel) * Simplify error handling for Cloudflare context --------- Co-authored-by: Huang Xin --- apps/readest-app/src/pages/api/deepl/translate.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/readest-app/src/pages/api/deepl/translate.ts b/apps/readest-app/src/pages/api/deepl/translate.ts index c3a39ed4..1c62a783 100644 --- a/apps/readest-app/src/pages/api/deepl/translate.ts +++ b/apps/readest-app/src/pages/api/deepl/translate.ts @@ -83,7 +83,12 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => { return res.status(405).json({ error: 'Method not allowed' }); } - const env = (getCloudflareContext().env || {}) as CloudflareEnv; + let env: Partial = {}; + try { + env = (getCloudflareContext().env || {}) as CloudflareEnv; + } catch { + console.warn('Cloudflare context is not available. Skipping KV cache.'); + } const hasKVCache = !!env['TRANSLATIONS_KV']; const { user, token } = await validateUserAndToken(req.headers['authorization']);