Page MenuHomePhorge

PHP 8.1 "strlen(null)" exceptions block rendering user page after creation with Welcome Email enabled
Closed, ResolvedPublic

Description

  1. PHP 8.2.5; Phorge at ac4c95169973e742ea768ebd103bb2142c3bdc7d
  2. Go to http://phorge.localhost/people/
  3. Select Create New User to go to http://phorge.localhost/people/create/
  4. Select Create Standard User
  5. Select Continue button
  6. Enter data in all three fields, leave Send "Welcome to Phorge" email with login instructions checked
  7. Select Create User button

Result: User account gets created but screen only shows an exception:

[2023-05-09 18:16:31] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=renderDashboardTabPanelContent, ref.master=d47289622650, ref.renderDashboardTabPanelContent=d47289622650), phorge(head=master, ref.master=ac4c95169973)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/people/mail/PhabricatorPeopleWelcomeMailEngine.php:121]
  #1 <#2> PhabricatorPeopleWelcomeMailEngine::newBody() called at [<phorge>/src/applications/people/mail/PhabricatorPeopleWelcomeMailEngine.php:101]
  #2 <#2> PhabricatorPeopleWelcomeMailEngine::newMail() called at [<phorge>/src/applications/people/mail/PhabricatorPeopleMailEngine.php:71]
  #3 <#2> PhabricatorPeopleMailEngine::sendMail() called at [<phorge>/src/applications/people/controller/PhabricatorPeopleNewController.php:118]
  #4 <#2> PhabricatorPeopleNewController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #5 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #6 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #7 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #8 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #9 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]

After fixing that exception and performing the steps above again, get the next exception:

[2023-05-09 18:19:00] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=renderDashboardTabPanelContent, ref.master=d47289622650, ref.renderDashboardTabPanelContent=d47289622650), phorge(head=createUserWelcomeEmail, ref.master=ac4c95169973, ref.createUserWelcomeEmail=ac4c95169973)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/applications/people/mail/PhabricatorPeopleWelcomeMailEngine.php:128]
  #1 <#2> PhabricatorPeopleWelcomeMailEngine::newBody() called at [<phorge>/src/applications/people/mail/PhabricatorPeopleWelcomeMailEngine.php:101]
  #2 <#2> PhabricatorPeopleWelcomeMailEngine::newMail() called at [<phorge>/src/applications/people/mail/PhabricatorPeopleMailEngine.php:71]
  #3 <#2> PhabricatorPeopleMailEngine::sendMail() called at [<phorge>/src/applications/people/controller/PhabricatorPeopleNewController.php:118]
  #4 <#2> PhabricatorPeopleNewController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #5 phlog(RuntimeException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #6 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #7 AphrontApplicationConfiguration::handleThrowable(RuntimeException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #8 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #9 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]

After fixing that exception, and performing the steps above again, user page at http://phorge.localhost/p/user5/ gets correctly rendered in web browser.

Related Objects

View Standalone Graph
This task is connected to more than 200 other tasks. Only direct parents and subtasks are shown here. Use View Standalone Graph to show more of the graph.