Steps to reproduce:
- PHP 8.2.5; Phorge at 651e3f7263b58e46cd65285cce7ba266af480aef, with D25193 on top
- Go to http://phorge.localhost/pholio/
- Do not enter anything in the Name field
- Select Create a Mock button
- Select "Click here, or drag and drop images to add them to the mock."
- Select an image in the file chooser
- Select the Upload button
- Select Create button at the bottom
Expected outcome:
A one-line error message rendered in the browser. For comparison, see Maniphest screenshot:
Actual outcome:
[2023-05-06 09:54:15] EXCEPTION: (PhabricatorApplicationTransactionValidationException) Validation errors: - Mocks must have a name. at [<phorge>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:1254] arcanist(head=renderDashboardTabPanelContent, ref.master=d47289622650, ref.renderDashboardTabPanelContent=d47289622650), phorge(head=createPholio2, ref.master=651e3f7263b5, ref.createPholio2=651e3f7263b5) #0 <#2> PhabricatorApplicationTransactionEditor::applyTransactions(PholioMock, array) called at [<phorge>/src/applications/pholio/controller/PholioMockEditController.php:214] #1 <#2> PholioMockEditController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284] #2 phlog(PhabricatorApplicationTransactionValidationException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41] #3 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, PhabricatorApplicationTransactionValidationException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751] #4 AphrontApplicationConfiguration::handleThrowable(PhabricatorApplicationTransactionValidationException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296] #5 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203] #6 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]