phacility/phabricator · warning · PhutilArgumentUsageException
Specify which steps to reparse with "--message", "--change",
Error message
Specify which steps to reparse with "--message", "--change", and/or "--publish"; or "--importing" to run all missing steps.
What it means
reparse must be told which parsing steps to run: at least one of `--message`, `--change`, `--publish`, or `--importing` (run all steps still missing). A subject alone (commit or `--all`) with no step selection is a no-op, so the workflow exits with this PhutilArgumentUsageException.
Source
Thrown at src/applications/repository/management/PhabricatorRepositoryManagementReparseWorkflow.php:122
"All from repo: %s\n".
"Commit(s) to reparse: %s",
$all_from_repo,
$commits));
}
$any_step = ($reparse_message || $reparse_change || $reparse_publish);
if ($any_step && $importing) {
throw new PhutilArgumentUsageException(
pht(
'Choosing steps with "--importing" conflicts with flags which '.
'select specific steps.'));
} else if ($any_step) {
// OK.
} else if ($importing) {
// OK.
} else if (!$any_step && !$importing) {
throw new PhutilArgumentUsageException(
pht(
'Specify which steps to reparse with "--message", "--change", '.
'and/or "--publish"; or "--importing" to run all missing steps.'));
}
$min_timestamp = false;
if ($min_date) {
$min_timestamp = strtotime($min_date);
if (!$all_from_repo) {
throw new PhutilArgumentUsageException(
pht(
'You must use "--all" if you specify "--min-date".'));
}
// previous to PHP 5.1.0 you would compare with -1, instead of false
if (false === $min_timestamp) {
throw new PhutilArgumentUsageException(View on GitHub (pinned to 5720a38cfe)
Solutions
- Add the step(s): `--message` to reparse commit messages, `--change` for change detection, `--publish` for publishing, or `--importing` to run every incomplete step.
- Use `./bin/repository reparse --help` to confirm flag names before running.
Example fix
# before ./bin/repository reparse --all R # Usage exception: Specify which steps to reparse with "--message", "--change", and/or "--publish"... # after ./bin/repository reparse --all R --message --change # or complete unfinished import steps ./bin/repository reparse --all R --importing
Defensive patterns
Strategy: validation
Validate before calling
# Require at least one step selector
[ "$MSG" = 1 ] || [ "$CHANGE" = 1 ] || [ "$PUBLISH" = 1 ] || [ "$IMPORTING" = 1 ] || {
echo "reparse needs --message/--change/--publish or --importing" >&2; exit 2;
}
./bin/repository reparse --all "$REPO" ${MSG:+--message} ${CHANGE:+--change} ${PUBLISH:+--publish} ${IMPORTING:+--importing} Prevention
- Make step flags required fields in reparse automation rather than optional defaults.
- Use `--importing` for finishing partially imported repositories; use explicit steps for re-doing specific work.
When it happens
Trigger: Running `./bin/repository reparse --all R` or `./bin/repository reparse <commit>` with no step flags at all (`$any_step` and `$importing` both false).
Common situations: First-time use assuming reparse does 'everything' by default; long command lines where the trailing step flag was accidentally dropped.
Related errors
- Specify a commit or repository to reparse.
- Specify a commit or repository to reparse, not both: All fro
- Choosing steps with "--importing" conflicts with flags which
- You must use "--all" if you specify "--min-date".
- Specify which subscription to invoice with %s.
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/6a4a7febb56f25d6.
Report an issue: GitHub.