phacility/phabricator · error · Exception
Parameter "fullText" is no longer supported. Use method "man
Error message
Parameter "fullText" is no longer supported. Use method "maniphest.search" with the "query" constraint instead.
What it means
The frozen Conduit method 'maniphest.query' rejects any request containing a non-empty 'fullText' parameter. Full-text search was removed from ManiphestTaskQuery, so the old parameter is explicitly blocked instead of silently ignored. The exception points you at the replacement: the modern 'maniphest.search' endpoint with the 'query' constraint.
Source
Thrown at src/applications/maniphest/conduit/ManiphestQueryConduitAPIMethod.php:105
$query->withAuthors($authors);
}
$projects = $request->getValue('projectPHIDs');
if ($projects) {
$query->withEdgeLogicPHIDs(
PhabricatorProjectObjectHasProjectEdgeType::EDGECONST,
PhabricatorQueryConstraint::OPERATOR_AND,
$projects);
}
$ccs = $request->getValue('ccPHIDs');
if ($ccs) {
$query->withSubscribers($ccs);
}
$full_text = $request->getValue('fullText');
if ($full_text) {
throw new Exception(
pht(
'Parameter "fullText" is no longer supported. Use method '.
'"maniphest.search" with the "query" constraint instead.'));
}
$status = $request->getValue('status');
if ($status) {
$query->withStatus($status);
}
$order = $request->getValue('order');
if ($order) {
$query->setOrder($order);
}
$limit = $request->getValue('limit');
if ($limit) {
$query->setLimit($limit);View on GitHub (pinned to 5720a38cfe)
Solutions
- Migrate the call to maniphest.search, passing the search string as the 'query' constraint: $params = array('query' => $full_text) plus the modern constraint/attachments/paging structure.
- Remove the 'fullText' key entirely if full-text filtering is no longer needed; the rest of maniphest.query (ids, phids, ownerPHIDs, status, order, limit, offset) still works.
- For richer filters (projects, statuses, owners), rebuild them as maniphest.search 'constraints' objects, since maniphest.query is frozen and will not regain full-text support.
Example fix
// before (old frozen method)
$result = $conduit->callMethodSynchronous('maniphest.query', array(
'fullText' => 'crash on login',
'status' => 'open',
));
// after (modern method)
$result = $conduit->callMethodSynchronous('maniphest.search', array(
'query' => 'crash on login',
'constraints' => array(
'statuses' => array('open'),
),
)); Defensive patterns
Strategy: fallback
Validate before calling
// Before calling maniphest.query, drop or migrate fullText
if (isset($params['fullText']) && $params['fullText'] !== '') {
$params['query'] = $params['fullText'];
unset($params['fullText']);
// route to maniphest.search instead of maniphest.query
} Try / catch
try {
$result = $conduit->callMethodSynchronous('maniphest.query', $params);
} catch (ConduitClientException $e) {
if (strpos($e->getMessage(), 'fullText') !== false) {
// degrade: reissue as maniphest.search with 'query' constraint
$result = $conduit->callMethodSynchronous('maniphest.search', array(
'query' => $params['fullText'],
));
} else {
throw $e;
}
} Prevention
- Standardize new integrations on maniphest.search; treat maniphest.query as read-only legacy.
- Lint integration configs for the fullText key before deployment.
When it happens
Trigger: Calling conduit method maniphest.query with a non-empty 'fullText' key in the params dict (e.g. $parameters['fullText'] = 'crash on login'). Any value that passes the truthiness check in ManiphestQueryConduitAPIMethod::execute throws before any other filter is applied.
Common situations: Legacy scripts, Arcanist-based tools, or third-party integrations written against old Phabricator that did full-text task search via maniphest.query. After upgrading an instance to a version where fulltext was dropped from ManiphestTaskQuery, every search call that passes fullText starts failing immediately.
Related errors
- Parameter "paths" to Conduit API method "differential.query"
- ERR_BAD_TASK
- Specify exactly one of '%s' and '%s'.
- ERR-NO-EFFECT
- ERR-BAD-TASK
AI-assisted analysis of phacility/phabricator@5720a38cfe (2026-08-21).
Data as JSON: /api/errors/c7b65939da6266f3.
Report an issue: GitHub.