phacility/phabricator · info · PhutilArgumentUsageException
User aborted the workflow.
Error message
User aborted the workflow.
What it means
Thrown by 'bin/repository clusterize' when its safety confirmation prompt (Continue anyway?) is answered negatively. The prompt appears when the target service has devices without up-to-date copies, risking leader/follower ambiguity that can freeze the repository; aborting is the designed outcome and nothing has been modified at this point.
Source
Thrown at src/applications/repository/management/PhabricatorRepositoryManagementClusterizeWorkflow.php:105
echo id(new PhutilConsoleBlock())
->addParagraph(
pht(
'Service "%s" is actively bound to more than one device (%s).',
$service_name,
implode(', ', $device_names)))
->addParagraph(
pht(
'If you clusterize a repository onto this service it may be '.
'unclear which devices have up-to-date copies of the '.
'repository. If so, leader/follower ambiguity will freeze the '.
'repository. You may need to manually promote a device to '.
'unfreeze it. See "Ambiguous Leaders" in the documentation '.
'for discussion.'))
->drawConsoleString();
$prompt = pht('Continue anyway?');
if (!phutil_console_confirm($prompt)) {
throw new PhutilArgumentUsageException(
pht('User aborted the workflow.'));
}
}
} else {
$service_phid = null;
}
$content_source = $this->newContentSource();
$diffusion_phid = id(new PhabricatorDiffusionApplication())->getPHID();
foreach ($repositories as $repository) {
$xactions = array();
$xactions[] = id(new PhabricatorRepositoryTransaction())
->setTransactionType(
PhabricatorRepositoryServiceTransaction::TRANSACTIONTYPE)
->setNewValue($service_phid);
View on GitHub (pinned to 5720a38cfe)
Solutions
- If you intended to proceed, resolve the ambiguity first (verify which devices hold current copies), then re-run and answer y
- Read the Ambiguous Leaders documentation referenced by the prompt before forcing a clusterize onto a partially synced service
- For automation, ensure all devices are synced so the prompt does not appear
Defensive patterns
Strategy: validation
Validate before calling
// In automation, ensure preconditions hold so the prompt never appears: // all devices bound to the service hold up-to-date repository copies. // Non-interactive callers should run only when devices are synced.
Prevention
- Verify device sync state before clusterizing onto partially copied services
- Read the Ambiguous Leaders documentation so the warning is understood, not bypassed
- Run interactive maintenance commands from a real TTY
When it happens
Trigger: Answering 'n' or EOF to the phutil_console_confirm prompt during clusterize; running clusterize non-interactively where stdin supplies a negative answer.
Common situations: Admin reads the ambiguity warning about devices without up-to-date copies and correctly aborts to fix state first; automation invoking the command without a TTY defaulting to no.
Related errors
- Declining to invoice.
- Aborted workflow.
- Specify one or more repositories to clusterize.
- Specify --service or --remove-service, but not both.
- Specify --service or --remove-service.
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/a541097adbe97dbf.
Report an issue: GitHub.