> ## Documentation Index
>
> Fetch the complete documentation index at: https://lithi.ai/llms.txt
>
> Use this file to discover all available pages before exploring further.

## The apply stopped before it finished

You planned a configuration change, applied it, and the aggregate result came back PARTIAL_WITH_NEXT_ACTION, REFUSED or EXPIRED rather than COMPLETE.

Some resources are probably already applied and verified. That work stands, and the goal now is to finish the rest without undoing it.

## Read the per-resource states

The aggregate result hides the detail you need. Every resource in the plan carries its own state.

Those states are PLANNED, WAITING_APPROVAL, READY, APPLYING, APPLIED_UNVERIFIED, VERIFIED, ALREADY_MATCHED, REFUSED, CONFLICT, RETRYABLE, REVOKED and ROLLED_BACK.

VERIFIED and ALREADY_MATCHED both mean that resource is done. CONFLICT means it changed after your plan was computed. RETRYABLE means the operation is safe to attempt again as it stands.

## Then do this

A CONFLICT is version drift. Your plan was computed against a version that is no longer current, and applying it anyway would overwrite whatever moved.

1. Read back the current state of each conflicting resource.
2. Decide whether the change that arrived first should stand.
3. Replan against the current versions. A fresh plan carries a fresh expected digest.
4. Apply again, or resume at the failed resource where the operation supports it.

Re-applying the same configuration change returns its prior verified result, so resources that already reached VERIFIED are not touched twice.

For WAITING_APPROVAL, the plan is correct and someone still has to approve it. Find that person before you replan anything.

## What not to repeat

Never discard the plan and start again from an empty desired state. That reverts every change that already verified, and it does so quietly.

Never force an apply with a stale expected digest. A late or stale version cannot advance state, and it should not be able to.

Remember what rollback does not mean. It never undoes an invitation that was sent, an external write that landed, or a payment that moved.

## Get help safely

Send the plan identifier, the aggregate state, and the per-resource states you observed. Add the request ID, the operation name, your client version, the contract release, and the time.

Leave out payloads, key values, signed URLs, and banking information.

Read more about [drift and partial apply](/docs/compute/configure/drift-and-partial-apply) and [plan, apply and read back](/docs/compute/configure/plan-apply-read-back).
