Skip to main content
Troubleshooting · graph

Use when

A workspace submit ended with outcome partial or unknown, or the workspace shows submission: partial or submission: unresolved.

Looking for something else?

A submit that returned rejected, where nothing was applied (card Workspace, rule workspace.3). A submit that waits for approval (problem A change returned pending).

Signs

  • penumbra graph workspace submit prints submission: partial or submission: unknown, and exits with code 4.
  • The output ends with next: penumbra graph workspace show "<name>" for the submission state, then submit again to resume.
  • A diagnostic says Earlier phases have sealed receipts or The submission outcome is unresolved. No rollback is inferred.
  • penumbra graph workspace show "<name>" prints submission: partial or submission: unresolved, and the workspace has status submitted.
  • When you may resume, the same read prints resume with --revision <r> --sequence <s>.
  • New staging is refused with workspace_not_open.

Why it happens

A submit commits in up to three phases (card Workspace, rule workspace.5). Each phase is one commit with its own phase receipt. A later phase can be refused, or its reply can be lost, after an earlier phase is final. Penumbra cannot prove that a phase without a receipt did not run. So unresolved is not a rollback.

What Penumbra does

By itself:
  • Keeps the plan and the receipt of each phase before it sends the next phase.
  • Does not apply a phase that has a receipt a second time, when you resume.
  • Checks your authority again for each remaining phase.
  • Keeps the workspace with status submitted until all phases are final.
  • When a Shape in the project has rules, runs the whole submit as one transaction. A failure then keeps nothing, and the code is workspace_atomic_submission_failed.
  • Shows a resume with line only to the credential that may resume.
You must:
  • Read the workspace.
  • Resume with the same workspace and the same credential.
  • Tell the person which phases are final.
Not handled:
  • No operation rolls back a finished phase.
  • No other credential can resume the submit.

Do

  1. Read the workspace: penumbra graph workspace show "<name>". Read the submission: line. Use penumbra graph workspace show "<name>" --json to see which phases have a receipt.
  2. If the output has a resume with line, run the command it describes: penumbra graph workspace submit "<name>" --revision <r> --sequence <s>. Use the values <r> and <s> from that line.
  3. Or send the original submit again with its original --request-id and the same arguments. This also returns the saved outcome or continues the phases that remain.
  4. If there is no resume with line, check which credential you hold with penumbra whoami. Use the credential that submitted. If you cannot, tell the person that this credential cannot resume the submit.
  5. If the submit ends in partial or unknown again, read the workspace again before the next try.
  6. When the submit ends applied, tell the person which items were created or changed.

Don’t

  • Don’t open a new workspace and stage the same items again. The finished phases would run a second time.
  • Don’t tell the person that the submit failed or was rolled back.
  • Don’t use the current workspace revision to resume. Use the --revision and --sequence from the resume with line.
  • Don’t edit the staged items. The workspace is not open.

Check

  • penumbra graph workspace show "<name>" prints status applied and submission: applied.
  • With --json, submission.receipts has a receipt for each phase that had work.
  • penumbra graph get <id> shows each entity that the submit created.
Card rules workspace.5, workspace.6 and workspace.9. Recipe review-and-submit. Problems reply-lost, graph-busy and workspace-changed-since-you-read.

Keep going

Workspace · Approval · Review a workspace and submit it · The reply to a change was lost · A Graph write returned graph_write_busy