v2.48.2
Three people reported three different bugs this week. All three had been told
"Agent offline — the DockPanel agent is not responding" by a panel whose agent
was answering perfectly clearly.
Fixed
-
An agent that refuses a request is no longer reported as an agent that is
down (#90, #91, #92).agent_error()acceptedimpl Display, so
AgentError::Status(code, body)— carrying the agent's real status and its
real sentence — was formatted into a string and collapsed into one generic
502at 244 call sites. The frontend then rewrote any 502 into the
"agent offline" message. SoPath must be within /var/backups/ or /tmp/,
WAF not installed. Install it from the Services page first.and a complete
nginx -tdiagnostic all reached their operators as the same dead end.A 4xx from the agent now keeps its status and its message. Only a transport
failure or an open circuit breaker — the cases where nothing answered — carry
theagent_unreachablemarker the UI keys off. Agent 5xx still returns a
generic message with an incident id, so internals are not leaked. -
Stripe and Cloudflare failures no longer blame the agent. 27 call sites in
billing.rsanddns.rsrouted third-party HTTP errors through the agent
path;billing.rsmakes no agent call at all. They now report which upstream
actually failed. Enforced by the type system rather than by review:
agent_errortakesAgentError, which areqwest::Erroris not. -
The WAF install no longer leaves nginx unable to start (#92). The
installer copiedunicode.mappingfrom/usr/share/modsecurity-crs/, and
when that was absent wrote a zero-byte file — which ModSecurity cannot
parse. Debian 13'slibmodsecurity3t64ships nounicode.mappinganywhere,
so every Debian 13 install took the empty-file path, reported success, and
failednginx -tthe first time a site actually enabled the WAF. The mapping
now rides the binary (include_str!), and the installer verifies the file it
just wrote defines the code pagemodsecurity.confnames. -
The Migration form stops suggesting a path the agent rejects (#90). The
Backup File Path placeholder read/home/user/backup-…while the agent only
accepts/var/backups/or/tmp/. The field now shows an accepted location
and states the constraint.
Known issues
- #91 (Migration
524) is only half addressed here. The misleading message
is fixed, but the underlying cause — backup analysis runs inline in the
request and can outlive the gateway timeout on a large archive — needs the
async 202-and-poll treatment used by the restore and update paths. Tracked on
the issue.
Added
tests/agent-error-propagation-pin-e2e.sh(21 assertions, CI job
agent-error-contract), proven to fail 20 of 21 against the pre-fix tree.
Install: curl -sL dockpanel.dev/install.sh | bash
Every release is installed on a throwaway VPS and driven as a user before
it ships. What that means, and what it has found, is written up at
https://docs.dockpanel.dev/testing.html.
Binaries are static musl builds signed with Sigstore; checksums.txt
and the .sig/.pem pairs are attached below.
Full changelog: v2.48.1...v2.48.2