Page MenuHomePhorge

PhabricatorApplicationTransactionStructureException trying to mute File notifications: "Attempting to apply a transaction which has not been constructed correctly"
Open, Needs TriagePublic

Description

  1. PHP 8.2.5; Phorge at ac4c95169973e742ea768ebd103bb2142c3bdc7d (but also happens in old Phabricator codebase under PHP 7)
  2. Go to http://phorge.localhost/file/upload/ to upload a file
  3. Select an image file in the File section
  4. Select the Upload button
  5. End up on the file page at http://phorge.localhost/F138
  6. In the sidebar, select Mute Notifications
  7. In the Mute Notifications overlay dialog, select Mute button
[2023-05-09 23:58:19] EXCEPTION: (PhabricatorApplicationTransactionStructureException) Attempting to apply a transaction (of class "PhabricatorFileTransaction", with type "core:edge") which has not been constructed correctly: Transaction has type "core:edge", but that transaction type is not supported by this editor (PhabricatorFileEditor). at [<phorge>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:1830]
arcanist(head=renderDashboardTabPanelContent, ref.master=d47289622650, ref.renderDashboardTabPanelContent=d47289622650), phorge(head=fileMuteNotif, ref.master=ac4c95169973, ref.fileMuteNotif=ac4c95169973)
  #0 <#2> PhabricatorApplicationTransactionEditor::validateEditParameters(PhabricatorFile, array) called at [<phorge>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:1209]
  #1 <#2> PhabricatorApplicationTransactionEditor::applyTransactions(PhabricatorFile, array) called at [<phorge>/src/applications/subscriptions/controller/PhabricatorSubscriptionsMuteController.php:58]
  #2 <#2> PhabricatorSubscriptionsMuteController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #3 phlog(PhabricatorApplicationTransactionStructureException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #4 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, PhabricatorApplicationTransactionStructureException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #5 AphrontApplicationConfiguration::handleThrowable(PhabricatorApplicationTransactionStructureException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #6 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #7 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]

Event Timeline

Same behavior for "Mute Notifications" on http://phorge.localhost/legalpad/view/1/ with same stacktrace:

[2023-05-13 10:48:02] EXCEPTION: (PhabricatorApplicationTransactionStructureException) Attempting to apply a transaction (of class "LegalpadTransaction", with type "core:edge") which has not been constructed correctly: Transaction has type "core:edge", but that transaction type is not supported by this editor (LegalpadDocumentEditor). at [<phorge>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:1830]
arcanist(head=master, ref.master=c14785c3795c), phorge(head=conduitEatMoreKittens, ref.master=2df7ea13a387, ref.conduitEatMoreKittens=2df7ea13a387)
  #0 <#2> PhabricatorApplicationTransactionEditor::validateEditParameters(LegalpadDocument, array) called at [<phorge>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:1209]
  #1 <#2> PhabricatorApplicationTransactionEditor::applyTransactions(LegalpadDocument, array) called at [<phorge>/src/applications/subscriptions/controller/PhabricatorSubscriptionsMuteController.php:58]
  #2 <#2> PhabricatorSubscriptionsMuteController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
  #3 phlog(PhabricatorApplicationTransactionStructureException) called at [<phorge>/src/aphront/handler/PhabricatorDefaultRequestExceptionHandler.php:41]
  #4 PhabricatorDefaultRequestExceptionHandler::handleRequestThrowable(AphrontRequest, PhabricatorApplicationTransactionStructureException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:751]
  #5 AphrontApplicationConfiguration::handleThrowable(PhabricatorApplicationTransactionStructureException) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:296]
  #6 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
  #7 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]