phacility/phabricator · error · PhutilArgumentUsageException

Use "--id" to choose a bulk job to make silent.

Error message

Use "--id" to choose a bulk job to make silent.

What it means

The make-silent workflow reconfigures a bulk job to run without mail or notifications, and it needs --id to know which job. With no id ($args->getArg('id') falsy), it throws this usage exception before touching the database. Bulk job IDs are visible in the web UI (Bulk Jobs / daemon console).

Source

Thrown at src/applications/transactions/bulk/management/PhabricatorBulkManagementMakeSilentWorkflow.php:29

        pht('Configure a bulk job to execute silently.'))
      ->setArguments(
        array(
          array(
            'name' => 'id',
            'param' => 'id',
            'help' => pht(
              'Configure bulk job __id__ to run silently (without sending '.
              'mail or publishing notifications).'),
          ),
        ));
  }

  public function execute(PhutilArgumentParser $args) {
    $viewer = $this->getViewer();

    $id = $args->getArg('id');
    if (!$id) {
      throw new PhutilArgumentUsageException(
        pht('Use "--id" to choose a bulk job to make silent.'));
    }

    $job = id(new PhabricatorWorkerBulkJobQuery())
      ->setViewer($viewer)
      ->withIDs(array($id))
      ->executeOne();
    if (!$job) {
      throw new PhutilArgumentUsageException(
        pht(
          'Unable to load bulk job with ID "%s".',
          $id));
    }

    if ($job->getIsSilent()) {
      echo tsprintf(
        "%s\n",
        pht('This job is already configured to run silently.'));

View on GitHub (pinned to 5720a38cfe)

Solutions

  1. Find the job ID in the bulk job UI/daemon console and pass --id <id>.
  2. If you meant to suppress future notification noise, prevent it at the source (disable mail, use a bot actor) instead of this command.
  3. Verify the job is still awaiting confirmation before acting — see error 1332.

Example fix

# before
bin/bulk make-silent
# after
bin/bulk make-silent --id 123
Defensive patterns

Strategy: validation

Validate before calling

test -n "$JOB_ID" || { echo 'JOB_ID is empty; pass --id' >&2; exit 2; }
bin/bulk make-silent --id "$JOB_ID"

Try / catch

Catch PhutilArgumentUsageException around the workflow call and exit with a usage-error code so orchestration can flag a script bug rather than a job problem.

Prevention

When it happens

Trigger: Running `bin/bulk make-silent` with no --id flag or an empty value.

Common situations: Operators scripting bulk job triage; forgetting the flag while trying to silence a noisy job during an incident; assuming the command acts on the most recent job.

Related errors


AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21). Data as JSON: /api/errors/5951c3bc6cfe39ce. Report an issue: GitHub.