Rolling an instance from its Deployments/<name> record — a Reconcile, and the Provision of a new instance — starts with the operator making sure the namespace exists. On 2026-09-08 that step failed on the first record-driven roll of memex:

hosting-deploy: ERROR: could not ensure namespace memex
error parsing STDIN: yaml: line 2: mapping values are not allowed in this context

What was happening

The operator narrates every mutation it runs ( + kubectl create namespace …) so the run's log tells you what it did. That narration was written to the same stream as the command's output — and this particular command's output is a YAML manifest that is piped straight into kubectl apply. kubectl therefore received the narration as line 1 of the manifest and refused line 2.

A Restart was unaffected (its steps pipe nothing), which is why a restart could roll the pods earlier the same day while a reconcile of the same instance could not.

What it does now

Narration is written to the log's error stream, so the data a wrapped command produces is exactly what the next command receives. The operator's test suite now asserts this byte-for-byte: a manifest piped through the wrapper comes out identical, a dry run writes nothing to the data channel, and the narration is still there — on the stream a log reader sees.

The operator image carrying this fix has to be named on each instance's record (operator.image); until it is, a Reconcile or Provision on that instance stops at the same line.

Reconnecting…
The connection to the server was interrupted. Trying to restore it…
Trying again…
The connection could not be restored. Reloading the page…
The server was updated. Reloading the page to pick up the latest version.