phacility/phabricator · error · PhutilArgumentUsageException
No object with name " " could be loaded.
Error message
No object with name "%s" could be loaded.
What it means
Thrown when one of the names passed via `--object`/`--container` cannot be resolved by PhabricatorObjectQuery. Names are monograms (T123, D45, P7), raw PHIDs, or object identifiers; resolution runs with the CLI actor's viewer context, so objects the acting user cannot see resolve to nothing and are reported as unloadable, indistinguishable from nonexistent ones.
Solutions
- Verify the monogram resolves in the web UI with the same acting user
- Correct typos in the name or use the full PHID form
- Run the command as a user who can see the object (e.g. `./bin/worker` as the control daemon user, not a restricted account)
Example fix
# before ./bin/worker retry --object T99 --class X # after ./bin/worker retry --object T99 --class X # only after confirming T99 exists and is visible; otherwise use the correct monogram/PHID
Defensive patterns
Strategy: validation
Validate before calling
// Resolve names to PHIDs via conduit first
$result = $client->callMethod('phid.lookup', array(
'names' => $names,
));
$unresolved = array_diff($names, array_keys($result));
if ($unresolved) {
throw new RuntimeException(
'Unresolvable object names: '.implode(', ', $unresolved));
} Type guard
function isResolvableObjectName($name) {
// monogram (T123, D45, P7...), PHID, or callsign-based id
return (bool) preg_match('/^(PHID-[A-Z]{4}-[a-z0-9]+|[A-Z]{1,2}\d+)$/', $name);
} Prevention
- Validate monogram/PHID syntax before passing names to CLI or conduit
- Run CLI worker commands as the control/daemon user so object visibility matches the daemon's view
- Resolve names to PHIDs once up front and operate on PHIDs thereafter
When it happens
Trigger: `./bin/worker retry --object T999999999 --class X` (no such task); passing a malformed monogram like `X123`; passing a PHID with a bad format; running as a restricted user/cluster node whose viewer cannot see the object (policies or 'policy.policies' configuration).
Common situations: Typos in monograms; IDs taken from another install or a stale import; running the CLI in a multi-node setup where the viewer is the omnipotent daemon user vs a limited account; objects locked behind policy rules like confidential projects.
Understand the failure class
Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.
Related errors
- Names " " and " " identify the same object. Specify only…
- No task with ID " " matches the constraints!
- Blueprint " " could not be loaded. Try a blueprint ID or…
- Commit " " does not exist.
- Commit " " is not valid.
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/70ab6d19fe0a2224.
Report an issue: GitHub.
Appendix: source
Thrown at src/infrastructure/daemon/workers/management/PhabricatorWorkerManagementWorkflow.php:287
pht(
'Object "%s" is specified more than once. Specify only unique '.
'objects.',
$name));
}
$seen_names[$name] = true;
}
$object_query = id(new PhabricatorObjectQuery())
->setViewer($viewer)
->withNames($names);
$object_query->execute();
$name_map = $object_query->getNamedResults();
$phid_map = array();
foreach ($names as $name) {
if (!isset($name_map[$name])) {
throw new PhutilArgumentUsageException(
pht(
'No object with name "%s" could be loaded.',
$name));
}
$phid = $name_map[$name]->getPHID();
if (isset($phid_map[$phid])) {
throw new PhutilArgumentUsageException(
pht(
'Names "%s" and "%s" identify the same object. Specify only '.
'unique objects.',
$name,
$phid_map[$phid]));
}
$phid_map[$phid] = $name;
}View on GitHub (pinned to 5720a38cfe)