A FedWiki maintenance run whose farm sync failed is shown as Completed #305

Open
opened 2026-10-30 22:51:34 +00:00 by cgalo5758 · 0 comments
Owner

What a person cannot do today

The FedWiki integration connects the console to a FedWiki farm, the server that hosts members' wiki sites. A scheduled maintenance run in Temporal, the console's workflow engine, first syncs with the farm when the sync setting is on (reads the farm's list of sites and copies it into the console), then deletes archived sites past their 30 days, then makes sites over a plan's limit read-only.

When the sync step fails after its retries, the run skips the deletion, still makes sites read-only, and returns a result with Success false and an error message, but no workflow error (internal/integrations/fedwiki/workflows/sync.go:114-162, :73-109). Temporal records the run as Completed, and the operator's FedWiki page shows the latest run's Temporal status under "Site maintenance", "Last run" (internal/integrations/fedwiki/web/operator.go:171, internal/workflows/schedule_health.go:58-75), so it reads "Completed". Nothing in the console reads the result's Success or its error message; the failure leaves only ERROR lines in the log (sync.go:119, :132, :150). The specification states this on purpose: the panel shows "the execution's Temporal status, not proof of successful farm projection" (openspec/specs/fedwiki-sites/spec.md:155), and a failed sync returns a nil workflow error (:1440, :1459).

An operator therefore cannot tell from the page that the console has stopped seeing the farm. Discourse's scheduled sweep returns its error instead, so Temporal records it as Failed and the Discourse page says so (internal/integrations/discourse/workflows/workflow.go:70-72, :94-96, :105-107).

What they should be able to do

See a run whose enabled farm sync failed as failed, after it has made sites read-only as it does now. Later runs still start on schedule: the schedule does not pause when a run fails (internal/integrations/fedwiki/workflows/schedule.go:116).

Why it matters

An operator who checks the panel is told the farm sync works while the console has stopped seeing the farm, and while archived sites wait undeleted because every run skips the deletion.

Where

internal/integrations/fedwiki/workflows/sync.go:70-157; internal/integrations/fedwiki/web/operator.go:171; openspec/specs/fedwiki-sites/spec.md:155, :1440

Done when

A FedWiki maintenance run whose enabled farm sync failed is recorded by Temporal and shown on the operator's FedWiki page as failed, after it has made sites read-only; the schedule keeps running; and the FedWiki sites specification says so.

### What a person cannot do today The FedWiki integration connects the console to a FedWiki farm, the server that hosts members' wiki sites. A scheduled maintenance run in Temporal, the console's workflow engine, first syncs with the farm when the sync setting is on (reads the farm's list of sites and copies it into the console), then deletes archived sites past their 30 days, then makes sites over a plan's limit read-only. When the sync step fails after its retries, the run skips the deletion, still makes sites read-only, and returns a result with `Success` false and an error message, but no workflow error (`internal/integrations/fedwiki/workflows/sync.go:114-162`, `:73-109`). Temporal records the run as Completed, and the operator's FedWiki page shows the latest run's Temporal status under "Site maintenance", "Last run" (`internal/integrations/fedwiki/web/operator.go:171`, `internal/workflows/schedule_health.go:58-75`), so it reads "Completed". Nothing in the console reads the result's `Success` or its error message; the failure leaves only ERROR lines in the log (`sync.go:119`, `:132`, `:150`). The specification states this on purpose: the panel shows "the execution's Temporal status, not proof of successful farm projection" (`openspec/specs/fedwiki-sites/spec.md:155`), and a failed sync returns a nil workflow error (`:1440`, `:1459`). An operator therefore cannot tell from the page that the console has stopped seeing the farm. Discourse's scheduled sweep returns its error instead, so Temporal records it as Failed and the Discourse page says so (`internal/integrations/discourse/workflows/workflow.go:70-72`, `:94-96`, `:105-107`). ### What they should be able to do See a run whose enabled farm sync failed as failed, after it has made sites read-only as it does now. Later runs still start on schedule: the schedule does not pause when a run fails (`internal/integrations/fedwiki/workflows/schedule.go:116`). ### Why it matters An operator who checks the panel is told the farm sync works while the console has stopped seeing the farm, and while archived sites wait undeleted because every run skips the deletion. ### Where `internal/integrations/fedwiki/workflows/sync.go:70-157`; `internal/integrations/fedwiki/web/operator.go:171`; `openspec/specs/fedwiki-sites/spec.md:155`, `:1440` ### Done when A FedWiki maintenance run whose enabled farm sync failed is recorded by Temporal and shown on the operator's FedWiki page as failed, after it has made sites read-only; the schedule keeps running; and the FedWiki sites specification says so.
cgalo5758 added the
kind
enhancement
area/fedwikiarea/operator-ui
labels 2026-10-30 22:51:34 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: wiki-cafe/member-console#305