phacility/phabricator · warning · Exception

You have not selected any objects to edit.

Error message

You have not selected any objects to edit.

What it means

In the final edit step, the engine intersects the user's tick-box selection (targetList) with the editable objects. An empty intersection (nothing ticked, or every ticked object outside the editable set) is rejected before any transactions are read.

Source

Thrown at src/applications/transactions/bulk/PhabricatorBulkEngine.php:403

    $viewer = $this->getViewer();
    $controller = $this->getController();
    $request = $controller->getRequest();

    if (!$this->objectList) {
      throw new Exception(pht('Query does not match any objects.'));
    }

    if (!$this->editableList) {
      throw new Exception(
        pht(
          'Query does not match any objects you have permission to edit.'));
    }

    // Restrict the selection set to objects the user can actually edit.
    $objects = array_intersect_key($this->editableList, $this->targetList);

    if (!$objects) {
      throw new Exception(
        pht(
          'You have not selected any objects to edit.'));
    }

    $raw_xactions = $request->getStr('xactions');
    if ($raw_xactions) {
      $raw_xactions = phutil_json_decode($raw_xactions);
    } else {
      $raw_xactions = array();
    }

    if (!$raw_xactions) {
      throw new Exception(
        pht(
          'You have not chosen any edits to apply.'));
    }

    $edit_engine = id($this->newEditEngine())

View on GitHub (pinned to 5720a38cfe)

Solutions

  1. Tick at least one editable object in the selection step and resubmit
  2. If every selection is non-editable, first narrow the query to editable objects (see the sibling permission error)
  3. If scripting, verify the selected PHID list is non-empty before POSTing
Defensive patterns

Strategy: validation

Validate before calling

// Client-side: ensure at least one selected PHID is in the editable set.
$selected = array_intersect_key($editableList, $targetList);
if (!$selected) {
  // keep the user on the selection step with an explanation
}

Prevention

When it happens

Trigger: Submitting the bulk edit form with no objects selected, or selecting only objects the user cannot edit.

Common situations: Client-side state failing to carry selected PHIDs into the request; users selecting everything then deselecting it; selections limited entirely to non-editable rows.

Related errors


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