You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Archiver is about to issue the first real content.replicate command (CannObserv/archiver#197, the other half of #81). What that command does depends entirely on whether this host has an alias table provisioned, and that state is unverified from the archiver side: ssh watcher times out from the archiver VM, so this issue is the shortest path to an answer.
docs/ENVIRONMENT.md documents the binding as if it were provisioned - { "primary": { "provider": "gcs", "bucket": "co-gcs-replication" } } with an empty prefix and a paragraph on why - but README.md's "Set on this VM" table does not list the variable.
docs/DEPLOYMENT.md says the worker's ADC is the replication writer SA (co-gcs-replicator), so the credential half should already be in place.
Please report
The journal line at the last boot: alias table loaded with its provisioned list, or no alias table on this host — replication is not provisioned.
Whether could not build a provider writer appears after that line (an alias that resolves but has no writer refuses provider_disabled, which reads differently on archiver's dashboard).
The value of REPLICATOR_REPLICATION_ALIASES_FILE in /etc/replicator/.env, and if set, the file's alias names (not its contents).
The sequencing this decides
Archiver's first command is deliberately going out before provisioning if the host is unprovisioned: the refusal is alias_unknown, terminal and pre-credential, so nothing is written anywhere, yet the command lands on content.replicate, the group delivers and acks it, the fact lands on content.artifacts, and archiver's writeback closes the command as failed. That exercises both streams end to end with zero permanent writes, which is what CannObserv/archiver#197 and CannObserv/broker#7 need. #81 stays open until the provisioned run - its "executes against a real destination" criterion needs a real write.
After the rehearsal, provisioning is the operator act (contract T5). Two asks so the second command succeeds first time:
Name the alias primary, matching docs/ENVIRONMENT.md. credentials_alias is part of the RepSpec document, which freezes on assignment (archiver#83), so a different name means a second RepSpec on archiver's side rather than an edit.
Say so here when it is provisioned. Archiver re-issues with a fresh command_id from the dashboard's Replicate now; nothing re-issues automatically.
If the host turns out to be provisioned already, say so and archiver skips the rehearsal: the same first command is then the real first write, under the destination layout being settled on archiver#197.
Archiver is about to issue the first real
content.replicatecommand (CannObserv/archiver#197, the other half of #81). What that command does depends entirely on whether this host has an alias table provisioned, and that state is unverified from the archiver side:ssh watchertimes out from the archiver VM, so this issue is the shortest path to an answer.What is known
REPLICATOR_REPLICATION_ALIASES_FILEwas unset on the VM when Consume content.replicate: permanent replication per RepSpec, emit replication_complete #29 closed on 2026-08-14 (its closing comment: "No host is provisioned … the startup line reads"replication_aliases": []").docs/ENVIRONMENT.mddocuments the binding as if it were provisioned -{ "primary": { "provider": "gcs", "bucket": "co-gcs-replication" } }with an empty prefix and a paragraph on why - butREADME.md's "Set on this VM" table does not list the variable.docs/DEPLOYMENT.mdsays the worker's ADC is the replication writer SA (co-gcs-replicator), so the credential half should already be in place.Please report
alias table loadedwith itsprovisionedlist, orno alias table on this host — replication is not provisioned.could not build a provider writerappears after that line (an alias that resolves but has no writer refusesprovider_disabled, which reads differently on archiver's dashboard).REPLICATOR_REPLICATION_ALIASES_FILEin/etc/replicator/.env, and if set, the file's alias names (not its contents).The sequencing this decides
Archiver's first command is deliberately going out before provisioning if the host is unprovisioned: the refusal is
alias_unknown, terminal and pre-credential, so nothing is written anywhere, yet the command lands oncontent.replicate, the group delivers and acks it, the fact lands oncontent.artifacts, and archiver's writeback closes the command asfailed. That exercises both streams end to end with zero permanent writes, which is what CannObserv/archiver#197 and CannObserv/broker#7 need. #81 stays open until the provisioned run - its "executes against a real destination" criterion needs a real write.After the rehearsal, provisioning is the operator act (contract T5). Two asks so the second command succeeds first time:
primary, matchingdocs/ENVIRONMENT.md.credentials_aliasis part of the RepSpec document, which freezes on assignment (archiver#83), so a different name means a second RepSpec on archiver's side rather than an edit.command_idfrom the dashboard's Replicate now; nothing re-issues automatically.If the host turns out to be provisioned already, say so and archiver skips the rehearsal: the same first command is then the real first write, under the destination layout being settled on archiver#197.