Page MenuHomePhabricator

Creating tasks with circular dependencies does not produce a useful error message
Closed, DuplicatePublic

Description

Sure, creating a circular dependency isn't cool. But when someone does make that mistake, it currently "hangs" the UI, leaving the grey shading in place until the page is refreshed. Behind the scenes, the logs show:

PHP message: [2015-03-03 09:43:46] EXCEPTION: (PhabricatorEdgeCycleException) Graph cycle detected (type=3, cycle=PHID-TASK-ve2obkgjfvjevd5qvtnr, PHID-TASK-qfcevk7tkhm5hfvk5dst, PHID-TASK-ve2obkgjfvjevd5qvtnr). at [<phabricator>/src/infrastructure/edges/editor/PhabricatorEdgeEditor.php:401]
PHP message: arcanist(head=master, ref.master=d8182cf55d50), phabricator(head=master, ref.master=18340d9ceffe), phutil(head=master, ref.master=b6200342f224)
PHP message:   #0 PhabricatorEdgeEditor::detectCycles(array, integer) called at [<phabricator>/src/infrastructure/edges/editor/PhabricatorEdgeEditor.php:129]
PHP message:   #1 PhabricatorEdgeEditor::save() called at [<phabricator>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:481]
PHP message:   #2 PhabricatorApplicationTransactionEditor::applyExternalEffects(ManiphestTask, ManiphestTransaction) called at [<phabricator>/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php:717]
PHP message:   #3 PhabricatorApplicationTransactionEditor::applyTransactions(ManiphestTask, array) called at [<phabricator>/src/applications/search/controller/PhabricatorSearchAttachController.php:89]
PHP message:   #4 PhabricatorSearchAttachController::processRequest() called at [<phabricator>/src/aphront/AphrontController.php:33]
PHP message:   #5 AphrontController::handleRequest(AphrontRequest) called at [<phabricator>/src/aphront/configuration/AphrontApplicationConfiguration.php:196]
PHP message:   #6 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink) called at [<phabricator>/src/aphront/configuration/AphrontApplicationConfiguration.php:121]
PHP message:   #7 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phabricator>/webroot/index.php:19]

I'd expect, instead, that some sort of "you screwed up" message would appear, informing the user of their mistake.