diff --git a/CHANGELOG.md b/CHANGELOG.md index abbaaa0..27fb753 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,4 +47,4 @@ Alle Einträge verwenden ISO-8601-Timestamps in UTC. Mehrere Änderungen desselb - Browserinstaller korrigiert: Der initiale Administrator wird jetzt mit allen im `users`-Schema erforderlichen Pflichtfeldern angelegt. - Realm-Dashboard korrigiert: Es fragt nur noch die konfigurierte Portainer-Umgebung ab, benötigt keine globale Endpoint-Liste oder Endpoint-Metadaten mehr und verwendet direkt den Docker-Proxy. - Fehlgeschlagene, bereits bezahlte Provisionierungen können durch Administratoren erneut gestartet werden. -- Administratoren erhalten bei fehlgeschlagenen Instanzaktionen einen bereinigten technischen Diagnosehinweis. +- Administratoren erhalten bei fehlgeschlagenen Instanzaktionen einen bereinigten technischen Diagnosehinweis inklusive cURL-Fehlerdetails bei Verbindungsproblemen. diff --git a/includes/bootstrap.php b/includes/bootstrap.php index 4e77519..a1679c6 100644 --- a/includes/bootstrap.php +++ b/includes/bootstrap.php @@ -195,7 +195,9 @@ function pnpaas_portainer_request(string $path, string $method = 'GET', ?array $ curl_close($handle); if ($body === false || $error !== '') { - throw new RuntimeException('Portainer ist nicht erreichbar.'); + $detail = trim($error); + $detail = preg_replace('/(?:X-API-Key|Authorization|Bearer)\s*:\s*[^\s,;]+/i', '[credential redacted]', $detail) ?? $detail; + throw new RuntimeException('Portainer ist nicht erreichbar' . ($detail !== '' ? ': ' . substr($detail, 0, 400) : '.')); } if ($status < 200 || ($status >= 300 && $status !== 304)) { $detail = trim(preg_replace('/\s+/', ' ', (string)$body) ?? '');