If DeepL is ever down, it can cause our translation endpoint to crash. Noticed this on staging with a fake api key:
Mar 14 09:21:23 purple damus-api[2632765]: SyntaxError: Unexpected end of JSON input
Mar 14 09:21:23 purple damus-api[2632765]: at JSON.parse (<anonymous>)
Mar 14 09:21:23 purple damus-api[2632765]: at parseJSONFromBytes (node:internal/deps/undici/undici:4747:19)
Mar 14 09:21:23 purple damus-api[2632765]: at successSteps (node:internal/deps/undici/undici:4718:27)
Mar 14 09:21:23 purple damus-api[2632765]: at fullyReadBody (node:internal/deps/undici/undici:1433:9)
Mar 14 09:21:23 purple damus-api[2632765]: at process.processTicksAndRejections (node:internal/process/task_queues:95:5) Mar 14 09:21:23 purple damus-api[2632765]: at async specConsumeBody (node:internal/deps/undici/undici:4727:7)
Mar 14 09:21:23 purple damus-api[2632765]: at async deepl_translate_text (/nix/store/ijbjsgpn1l55jn43ibg43j18x8srg5kc-damu
s-api-0.1.0/lib/node_modules/damus-api/src/translate.js:52:14)
Mar 14 09:21:23 purple damus-api[2632765]: at async translate_payload (/nix/store/ijbjsgpn1l55jn43ibg43j18x8srg5kc-damus-a
pi-0.1.0/lib/node_modules/damus-api/src/translate.js:84:14)
Mar 14 09:21:23 purple damus-api[2632765]: Node.js v18.19.0
Mar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Main process exited, code=exited, status=1/FAILURE
Mar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Failed with result 'exit-code'.
Mar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Consumed 696ms CPU time, received 20.2K IP traffic, sent 4.1K IP
traffic.
Mar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Scheduled restart job, restart counter is at 153.
Mar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Start request repeated too quickly.
Mar 14 09:21:23 purple systemd[1]: damus-api-staging.service: Failed with result 'exit-code'.
Mar 14 09:21:23 purple systemd[1]: Failed to start damus-api-staging.
If DeepL is ever down, it can cause our translation endpoint to crash. Noticed this on staging with a fake api key: