Skip to content

Handle partial volume creation failures during CreateActor. - #527

Open
Michelle Au (msau42) wants to merge 1 commit into
agent-substrate:mainfrom
msau42:handle-create-volume-failure
Open

Handle partial volume creation failures during CreateActor.#527
Michelle Au (msau42) wants to merge 1 commit into
agent-substrate:mainfrom
msau42:handle-create-volume-failure

Conversation

@msau42

@msau42 Michelle Au (msau42) commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Part of #232

  1. During CreateActor, the volumes to be created get instantiated in the Actor API in CREATING status. The Actor is still instantiated as SUSPENDED.

However, the CreateVolume operation is moved to the beginning of ResumeActor. This is because CreateActor is intentionally designed to not be idempotent. The downside is that the user won't know dependent resource creation failed until the first resume.

  1. Changes volume id to use actor uid instead of atespace+actorname and adds "substrate" prefix

  2. Adds a new DELETING status that gets persisted before we start to delete volumes.

This shifts the existing DB DELETE precondition checks to the new DELETING status. And now you can only delete the actor in DB from DELETING status.

In the future, we will also add a workflow that will do mandatory node cleanup of volumes before starting to delete the volumes.

  • Tests pass
  • Appropriate changes to documentation are included in the PR

@msau42
Michelle Au (msau42) force-pushed the handle-create-volume-failure branch 4 times, most recently from 7878a0f to 3df47e1 Compare July 28, 2026 03:13
1. During CreateActor, the volumes to be created
get instantiated in the Actor API in CREATING status.
The Actor is still instantiated as SUSPENDED.

However, the CreateVolume operation is moved
to the beginning of ResumeActor.
This is because CreateActor is intentionally designed
to not be idempotent. The downside is that the user
won't know dependent resource creation failed until
the first resume.

2. Changes volume id to use actor uid instead of
atespace+actorname, and add "substrate" prefix

3. Adds a new DELETING status that gets persisted before
we start to delete volumes.

This shifts the existing DB DELETE precondition checks
to the new DELETING status. And now you can only delete
the actor in DB from DELETING status.

In the future, we will also add a workflow that will
do mandatory node cleanup of volumes before starting
to delete the volumes.
@msau42
Michelle Au (msau42) force-pushed the handle-create-volume-failure branch from 3df47e1 to 958b436 Compare July 28, 2026 03:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant