Reference
Arcane.installation.ensure()
Ensures the Arcane installation reaches its required state.
This focused page is derived from the mechanically checked full member inventory.
Syntax
Arcane.installation.ensure()
Parameters
None
Return value
Promise<result>
Description
Ensures the Arcane installation reaches its required state.
Overview
Arcane.installation.ensure() installs, updates, repairs, or verifies Arcane OS
as required. It is a privileged, exclusive, non-idempotent Provisioner
operation requiring provisioning.manage on Core. It can write protected
files, register platform integration, and change machine configuration. Never
start it without a visible status and separate user confirmation.
The host rejects an installed Provisioner attempting to replace its own active installation; updates and repairs run from a verified external release. It blocks downgrades and re-verifies installation identity and postconditions.
Result, side effects, and events
The exact result is {manifest, installation, requirements, model, ready, warningCount, operation, credentials}. model is exactly {status, reason, requiredBefore, created} and deliberately reports local-model setup as
deferred from base installation. ready: true requires a present, current,
nonblocked installation with accepted identity, integrity, and required
requirements. A completed result can have ready: false and warnings when
warn-first policy is active.
The method emits the standard operation lifecycle events. Simulation mutates only deterministic development state and does not prove a real installation.
Errors and recovery
Important failures include ADMIN_REQUIRED, OPERATION_BUSY,
EXTERNAL_PROVISIONER_REQUIRED, DOWNGRADE_BLOCKED,
INSTALL_IDENTITY_INVALID, payload or integrity failures, and installation
lease/stage cleanup failures. Do not retry automatically after an ambiguous
failure: preserve the diagnostic, inspect fresh installation.status(), and
follow its recovery action.
Example
async function ensureInstallationAfterConfirmation(confirmChange) {
const status = await Arcane.installation.status();
if (status.action === 'current' || status.action === 'blocked') {
return status;
}
if (!confirmChange(status.action, status)) {
return null;
}
return Arcane.installation.ensure();
}