SKYHOUSE.dev Journal

Maintaining the Cloud Fortress

DDNS Pipeline Bugfix

Why: The 2026-05 server audit found the DDNS pipeline silently dying; this fixes it.

During the recent audit, we noticed that the DDNS pipeline had a persistent issue preventing it from correctly updating its state file. This meant that the script would correctly update the dynamic IP once, but never realize it had completed its task, breaking auto-updates for any future IP changes.

1. Fixing the set -e / ((x++)) Bug

The root cause was an interaction between bash's set -e behavior and the arithmetic evaluation command. The script used ((success_count++)) to track updated domains. Since success_count starts at 0, the very first execution evaluated the inner expression to 0. In bash, ((expr)) returns an exit status of 1 when the expression evaluates to 0. Because the script runs with set -euo pipefail, this non-zero exit instantly killed the script before the state file could be written.

This resolves the "Known issue" section of the Dynadot DDNS Pipeline (Discovery) entry.

← Back to Admin Hub