🔴 CF-Sync-Watchdog: CFEstateSync FAILURE 2 Tage in Folge (OSError bei cfd_tunnel-Call) (2026-09-15) #70

Closed
opened 2026-09-15 14:08:06 +02:00 by admin · 1 comment
Owner

Automatischer Watchdog-Fund (cf-estate-sync-watchdog, 2026-09-15)

Bedingung: (b) jüngster geplanter Lauf status != SUCCESS — UND das zweimal in Folge.

ScheduledJob 118c868a-985c-4fcd-856a-34ceb5eb3fe6 ("CF Estate Sync", daily 03:00Z):

  • enabled: true
  • last_run_at: 2026-09-15T03:00:00.004964Z (Scheduler läuft, feuert pünktlich)
  • total_run_count: 5

JobResults (bf_infra.jobs.cf_estate_sync.CFEstateSync), letzte 5 geplante Läufe:

Datum (UTC) Status
2026-09-15 03:00 FAILURE
2026-09-14 03:00 FAILURE
2026-09-13 03:00 SUCCESS
2026-09-12 03:00 SUCCESS
2026-09-11 03:00 SUCCESS

→ JobResult 2026-09-15 (FAILURE)
→ JobResult 2026-09-14 (FAILURE)

Traceback (identisch an beiden Tagen), Kern:

File "/opt/nautobot/git/bf_infra/jobs/cf_estate_sync.py", line 205, in run
    networks, services, routes, skipped = self._load_cf()
File "/opt/nautobot/git/bf_infra/jobs/cf_estate_sync.py", line 91, in _load_cf
    _, tuns = self._cf_get(f"/accounts/{A}/cfd_tunnel?is_deleted=false&per_page=50")
File "/opt/nautobot/git/bf_infra/jobs/cf_estate_sync.py", line 73, in _cf_get
    with urllib.request.urlopen(req, timeout=30) as r:
...
urllib.request: HTTPError → raised als OSError, exc_message leer

Der Job scheitert also am allerersten Cloudflare-API-Call (/accounts/{account_id}/cfd_tunnel)
mit einem HTTP-Fehler (Code selbst kam in der JobResult-Serialisierung nicht mit durch — exc_message
war ein leeres Array). Kandidaten: CF-API-Token abgelaufen/rotiert, Scope-Verlust auf diesem einen
Endpoint, oder ein transientes CF-API-Problem, das sich über 2 Tage nicht von selbst erholt hat.

Nicht geprüft von diesem Watchdog (bräuchte den echten HTTP-Statuscode/-Body): ob es ein reiner
Auth-Fehler ist oder ein CF-seitiges Problem. Bitte den Job manuell mit --refresh-compliance-Äquivalent
bzw. direktem curl gegen /accounts/{account_id}/cfd_tunnel mit demselben Token laufen lassen, um den
Statuscode zu sehen.

cloud-networks/cloud-services aktuell in Nautobot: 4 / 14 (aus dem letzten erfolgreichen Lauf vom
2026-09-13 — diese Zahlen sind seit 2 Tagen nicht aktualisiert, die CF-Estate-Sicht in Nautobot ist damit stale).


🤖 Automatisch erstellt vom scheduled task cf-estate-sync-watchdog.

**Automatischer Watchdog-Fund (cf-estate-sync-watchdog, 2026-09-15)** **Bedingung:** (b) jüngster geplanter Lauf status != SUCCESS — UND das zweimal in Folge. **ScheduledJob** `118c868a-985c-4fcd-856a-34ceb5eb3fe6` ("CF Estate Sync", daily 03:00Z): - `enabled`: true - `last_run_at`: 2026-09-15T03:00:00.004964Z (Scheduler läuft, feuert pünktlich) - `total_run_count`: 5 **JobResults (bf_infra.jobs.cf_estate_sync.CFEstateSync), letzte 5 geplante Läufe:** | Datum (UTC) | Status | |---|---| | 2026-09-15 03:00 | **FAILURE** | | 2026-09-14 03:00 | **FAILURE** | | 2026-09-13 03:00 | SUCCESS | | 2026-09-12 03:00 | SUCCESS | | 2026-09-11 03:00 | SUCCESS | → [JobResult 2026-09-15 (FAILURE)](http://10.40.20.30:8080/api/extras/job-results/40e6e77d-862f-4f42-9eb2-20e4086556ef/) → [JobResult 2026-09-14 (FAILURE)](http://10.40.20.30:8080/api/extras/job-results/870eda7a-0886-49ab-bb1e-8276e05208e2/) **Traceback (identisch an beiden Tagen), Kern:** ``` File "/opt/nautobot/git/bf_infra/jobs/cf_estate_sync.py", line 205, in run networks, services, routes, skipped = self._load_cf() File "/opt/nautobot/git/bf_infra/jobs/cf_estate_sync.py", line 91, in _load_cf _, tuns = self._cf_get(f"/accounts/{A}/cfd_tunnel?is_deleted=false&per_page=50") File "/opt/nautobot/git/bf_infra/jobs/cf_estate_sync.py", line 73, in _cf_get with urllib.request.urlopen(req, timeout=30) as r: ... urllib.request: HTTPError → raised als OSError, exc_message leer ``` Der Job scheitert also am **allerersten** Cloudflare-API-Call (`/accounts/{account_id}/cfd_tunnel`) mit einem HTTP-Fehler (Code selbst kam in der JobResult-Serialisierung nicht mit durch — `exc_message` war ein leeres Array). Kandidaten: CF-API-Token abgelaufen/rotiert, Scope-Verlust auf diesem einen Endpoint, oder ein transientes CF-API-Problem, das sich über 2 Tage nicht von selbst erholt hat. **Nicht geprüft von diesem Watchdog (bräuchte den echten HTTP-Statuscode/-Body):** ob es ein reiner Auth-Fehler ist oder ein CF-seitiges Problem. Bitte den Job manuell mit `--refresh-compliance`-Äquivalent bzw. direktem `curl` gegen `/accounts/{account_id}/cfd_tunnel` mit demselben Token laufen lassen, um den Statuscode zu sehen. **cloud-networks/cloud-services aktuell in Nautobot:** 4 / 14 (aus dem letzten erfolgreichen Lauf vom 2026-09-13 — diese Zahlen sind seit 2 Tagen nicht aktualisiert, die CF-Estate-Sicht in Nautobot ist damit stale). --- 🤖 Automatisch erstellt vom scheduled task `cf-estate-sync-watchdog`.
admin added the thema:cloudflare-proxy label 2026-09-15 14:08:06 +02:00
Author
Owner

✅ Behoben (2026-09-15 12:19 UTC)

Ursache: CF-API-Token am 2026-09-13 gerollt (exports.zsh, credentials.env), aber das Token in 210-nautobot.yml (Nautobot-Worker-Container-Env) wurde nicht mitgezogen → Worker lief seit 09-14 mit invalidem Token.

Fix:

  1. CF_API_TOKEN in 210-nautobot.yml auf das gerollte Token aktualisiert (Prefix cfat_Dpt... → cfat_ynl...)
  2. Nautobot-Stack via Portainer redeployed (Stack 203, Endpoint 14)
  3. Manueller Verifikationslauf: SUCCESS — 4 CloudNetworks, 16 CloudServices, alle Endpoints lesbar, 0 Errors

Zwei neue Workers (travelmate, railplanner-rw) wurden nachgezogen, die in den 2 Ausfall-Tagen dazugekommen waren.

Lehre: Bei Token-Rotation alle Konsumenten mitziehen — exports.zsh/credentials.env sind SSoT, aber der Nautobot-Stack auf der NAS braucht ein manuelles Update + Redeploy.

**✅ Behoben (2026-09-15 12:19 UTC)** **Ursache:** CF-API-Token am 2026-09-13 gerollt (`exports.zsh`, `credentials.env`), aber das Token in `210-nautobot.yml` (Nautobot-Worker-Container-Env) wurde nicht mitgezogen → Worker lief seit 09-14 mit invalidem Token. **Fix:** 1. `CF_API_TOKEN` in `210-nautobot.yml` auf das gerollte Token aktualisiert (Prefix `cfat_Dpt...` → `cfat_ynl...`) 2. Nautobot-Stack via Portainer redeployed (Stack 203, Endpoint 14) 3. Manueller Verifikationslauf: **SUCCESS** — 4 CloudNetworks, 16 CloudServices, alle Endpoints lesbar, 0 Errors Zwei neue Workers (`travelmate`, `railplanner-rw`) wurden nachgezogen, die in den 2 Ausfall-Tagen dazugekommen waren. **Lehre:** Bei Token-Rotation alle Konsumenten mitziehen — `exports.zsh`/`credentials.env` sind SSoT, aber der Nautobot-Stack auf der NAS braucht ein manuelles Update + Redeploy.
admin closed this issue 2026-09-15 14:21:12 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: admin/bf-infra#70