Restart services after rebuild before provisioning

Table of Contents

This page is a capture in the inbox bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.

1. What

During the 2026-08-25 Acme re-provisioning of the eager_maxwell environment, the provisioning script's final step bundles publish risk_management --wait aborted after 5 consecutive poll failures: "Field named 'status' not found" (also error, step_count, current_step_index). Root cause: the services were started before the rebuild finished, so the running ores.workflow binary was ~5 days old — its get_workflow_steps_response JSON lacked the fields the current shell's fetch_steps() parser requires (projects/ores.shell/src/app/commands/workflow_commands.cpp, protocol in projects/ores.workflow/api/include/ores.workflow.api/messaging/workflow_query_protocol.hpp). The dispatched workflow itself completed all 4 steps; verified via workflow steps after restarting services with fresh binaries. The --wait poll treats parse errors as transient (5 tolerated), then aborts the script — the wrong diagnosis would be a provisioning or schema bug.

2. Why

A provisioning failure mid-flow costs real minutes and the parse-error signature is cryptic: it looks like schema drift or a protocol bug when it is actually binary staleness. Nothing enforces the correct ordering today — the feature-test recipe builds first, but compass services start happily launches stale binaries from the previous build. Options: (a) a pre-flight check in services start that warns (or fails) when the publish/bin timestamps predate the current build; (b) an explicit "rebuild then restart services then provision" note in the ready-up recipe; (c) a compass provision command that restarts services itself.

3. Why

(Motivation, problem being solved, related context.)

4. References

  • projects/ores.shell/scripts/library/provisioning/how_do_i_provision_the_system_with_acme_corporation_holding_group.ores
  • projects/ores.shell/src/app/commands/workflow_commands.cpp — wait_for_instance(), fetch_steps()
  • projects/ores.workflow/api/include/ores.workflow.api/messaging/workflow_query_protocol.hpp — get_workflow_steps_response

5. See also

Emacs 29.3 (Org mode 9.6.15)