Build, install, and recover
Use this guide when you build or install a release with Installable Products. As a builder, resolve its inputs, apply the checked plan, and read what the Workspace holds. Use that same evidence when you change or recover the install.
Before you start
The install needs a target Workspace, an exact Product release, and rights to change its design. Check management authority before choosing the caller. Keep the release key and version with the plan under review. Confirm that required Sources and bindings can be resolved.
Use the Console for its mounted install flow. For Merulan Code or OpenTofu, check the Infrastructure as Code guide for release and access prerequisites. A plan contract does not supply public package install steps.
Prepare the release
For an existing release, inspect its exact version in the Marketplace. Read its requirements and available profiles. For an authored Product, compile its content and exact references, then preview publication. Publish the reviewed bytes with that digest. Tenant publication is private to the publishing company. An authored distribution field cannot make it public.
Read the release after publication. Keep its receipt and digest. A local build does not prove that the registry holds those bytes.
Preview and install
In the target Workspace, preview the release with the selected profile and input answers. Resolve each blocker and accept the needed slot choices. Preview again after changing an answer. Check the plan's exact releases, namespaces, and adoption choices before accepting it.
Use the install contract with the accepted plan and a stable retry key. Keep the returned attempt and installation identity. Inspect both the attempt state and completed work before treating the install as successful.
Checkpoints
The install read must match the accepted release and plan. Use installed inspection to check owned content and reference edges. Read saved settings, Source pins, and unresolved inputs when configuration exists. A reference to another Product is not proof that its required input is ready.
Keep the plan, attempt, and readback together. If the result is partial or requires resolution, enter recovery with those facts before submitting another change.
Change the install
For an editable setting, read the current revision and use the configuration contract. Read the saved values afterward. For a release change, preview the target, resolve blockers, then apply the accepted upgrade. An open attempt must finish or be resolved before another upgrade starts.
For uninstall, inspect live consumers and retire the selected root. Check its result. Referenced Products remain installed. Removing a root does not authorize their removal.
Success
The install has reached installed, with the expected release, owned content, references, and saved inputs. A settings edit has a new saved revision. A completed upgrade reads back as its target release. A completed uninstall reads back as retired, with retained history. Use the result for the action you chose. One successful step does not prove the others.
When it fails
The install's returned code and attempt state select the repair. Preserve both before changing the request.
PRODUCT_STALE
The Product changed after the plan was accepted. Read current state, preview the intended change again, and review the replacement plan. Do not copy stale expectations into a new request.
PRODUCT_REQUIRES_RESOLUTION
The lifecycle needs an input or operator decision. Read the named blockers and retained work. Correct the missing choice or dependency before resuming or accepting a replacement plan.
PRODUCT_OPERATION_FAILED
The call failed without a successful lifecycle result. Inspect the attempt and installed state before retrying. A failed response alone does not show which work completed.
Recovery
Recover an interrupted install or upgrade from its saved attempt. A resume keeps the accepted plan and delta. It does not select a newer release. Resolve permanent failures or changed inputs before a fresh plan. Retry retirement only after checking the root's current state and remaining consumers.
Rollback is a reviewed change, not a blanket undo. If a return to an earlier release is needed, preview that exact target and accept it only when the checks pass. A failed final upgrade commit preserves the prior release but does not prove that all attempted work was reversed.
For adoption, import existing installs without mutation. Check that the next plan is empty, then request authority transfer. Read the new policy before applying design changes.
Next steps
- Lifecycle, provenance, and drift explains the retained evidence used to recover an install.
- The API guide explains access and error handling for the linked install contracts.
- Apps & Dashboards explains how to open and check an experience delivered by the install.