mozilla-services / mozilla-services/updatebot
arcanist error: Passing null to parameter #2 ($subject) of type string is deprecated
Open
Nobody has claimed this yet.
Bug
- Dominant language
- Python
- Stars
- 9
- Forks
- 8
- PR merge metrics
- No merged PRs in 30d
Description
Command 'echo '{"constraints": {"slugs":["#nss-reviewers"]}}' | arcanist call-conduit --conduit-uri=https://phabricator.services.mozilla.com/
project.search --' returned non-zero exit status 255.
In #400 there was error that prompted us to add --trace to arcanist to diagnose it. Now we have the trace:
CompletedProcess(args='echo \'{"constraints": {"slugs":["#nss-reviewers"]}}\' | arcanist call-conduit --conduit-uri=https://phabricator.services.mozilla.com/ project.search --', returncode=255, stdout=b'', stderr=b'[2025-11-19 00:16:41] EXCEPTION: (RuntimeException) preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist()
#0 PhutilErrorHandler::handleError(integer, string, string, integer)
#1 preg_match(string, NULL, NULL) called at [<arcanist>/src/future/http/status/HTTPFutureHTTPResponseStatus.php:24]
#2 HTTPFutureHTTPResponseStatus::__construct(integer, string, array, NULL) called at [<arcanist>/src/future/http/BaseHTTPFuture.php:384]
#3 BaseHTTPFuture::parseRawHTTPResponse(string) called at [<arcanist>/src/future/http/HTTPSFuture.php:545]
#4 Future::updateFuture() called at [<arcanist>/src/future/FutureProxy.php:35]
#5 FutureProxy::isReady() called at [<arcanist>/src/future/Future.php:63]
#6 Future::updateFuture() called at [<arcanist>/src/future/FutureIterator.php:224]
#7 FutureIterator::next() called at [<arcanist>/src/future/FutureIterator.php:190]
#8 FutureIterator::rewind()
#9 iterator_to_array(FutureIterator) called at [<arcanist>/src/future/FutureIterator.php:84]
#10 FutureIterator::resolveAll() called at [<arcanist>/src/future/Future.php:47]
#11 Future::resolve() called at [<arcanist>/src/workflow/ArcanistCallConduitWorkflow.php:60]
#12 ArcanistCallConduitWorkflow::runWorkflow(PhutilArgumentParser) called at [<arcanist>/src/workflow/ArcanistWorkflow.php:227]
#13 ArcanistWorkflow::executeWorkflow(PhutilArgumentParser) called at [<arcanist>/src/toolset/ArcanistPhutilWorkflow.php:21]
#14 ArcanistPhutilWorkflow::execute(PhutilArgumentParser) called at [<arcanist>/src/parser/argument/PhutilArgumentParser.php:492]
#15 PhutilArgumentParser::parseWorkflowsFull(array) called at [<arcanist>/src/runtime/ArcanistRuntime.php:171]
#16 ArcanistRuntime::executeCore(array) ca..
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with arcanist/src/future/http/status/HTTPFutureHTTPResponseStatus.php and the call from arcanist/src/future/http/BaseHTTPFuture.php:384. Reproduce the shown arcanist call with --trace and follow how the response reaches preg_match with a null subject. Done means this deprecation no longer aborts the command; no test file is named in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- php
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100