diff --git a/extensions/directus-extension-skrift-orders/dist/index.js b/extensions/directus-extension-skrift-orders/dist/index.js index f96b0f1..e968849 100644 --- a/extensions/directus-extension-skrift-orders/dist/index.js +++ b/extensions/directus-extension-skrift-orders/dist/index.js @@ -217,16 +217,23 @@ const handler = (router, { services, getSchema, logger }) => { const { form, jobCount } = await signatureForm(schema, pdfId, sigList); if (!jobCount) return res.status(400).json({ error: 'Keine gültige Signatur (SVG-Datei fehlt).' }); - const r = await fetch(`${SIGN_URL}${pfad}`, { method: 'POST', body: form }); + let r; + try { + r = await fetch(`${SIGN_URL}${pfad}`, { method: 'POST', body: form }); + } catch (e) { + // Netzwerkfehler (Service down / Containername nicht auflösbar / falsche URL). + logger.warn(`[skrift-orders] Signatur-Service nicht erreichbar (${SIGN_URL}): ${e.message}`); + return res.status(502).json({ error: 'Signatur-Service nicht erreichbar.', detail: `${SIGN_URL} – ${e.message}. SKRIFT_SIGN_URL / Container prüfen.` }); + } if (!r.ok) { const t = await r.text(); - return res.status(502).json({ error: 'Signatur-Service-Fehler.', detail: `${r.status}: ${String(t).slice(0, 400)}` }); + return res.status(502).json({ error: 'Signatur-Service-Fehler (evtl. Marker nicht im PDF gefunden).', detail: `${r.status}: ${String(t).slice(0, 400)}` }); } const buf = Buffer.from(await r.arrayBuffer()); return res.json({ [key]: buf.toString('base64'), content_type: contentType, order_number: ord?.order_number || 'manuell' }); } catch (err) { logger.error(`[skrift-orders] ${pfad}: ${err.stack || err.message}`); - return res.status(500).json({ error: 'Signatur-Verarbeitung fehlgeschlagen.' }); + return res.status(500).json({ error: 'Signatur-Verarbeitung fehlgeschlagen.', detail: String(err.message || err).slice(0, 400) }); } }