Steps to reproduce:
-1. Have a simple Task, Open, without owner
-2. Add Action > Change Status > Resolved
- ( - NOTE: An automatic Transaction is added: to Claim: =yourself)
-3. Add Action > Assign / Claim > __unset yourself__
-4. Save
What happens:
> {F267558}
What should happen:
No warning should be raised.
This is a corner case since, the warning it's useful when a field is empty. But, in this case, there is a default in action: it is really setting yourself as Assignee. And you are unsetting it, and not leaving it as just blank.
== What probably happens ==
This is an attempt to describe what kind of interaction happens under the hood. Every line is a new time phase.
Starting from a simple Task, Open, without owner:
| Phase | What you Do | What Phorge does | Notes |
|-------|--------------------------------------------------|------------------|-------|
| 1 | Add Action > Change Status > Resolved | | |
| 2 | | The `ManiphestTransactionEditor` ([[ /source/phorge/browse/master/src/applications/maniphest/editor/ManiphestTransactionEditor.php$356-368 | :356-368 ]]) expandes the transaction to __set yourself as claimer | |__ | (This is nice) |
| 3 | Add Action > Assign / Claim > __unset yourself__ | | |
| 4 | Save | | ← On Save, we can try to skip "Expanded transactions" that were unset.(what is it actually sent?) | | ← On Save, maybe "Expanded transactions that were unset" should be skipped |
| 5 | | ? | The `PhabricatorApplicationTransactionEditor` ([[ /source/phorge/browse/master/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php$2821-2826 | :2821-2826 ]]) thinks Claim=null was unuseful | |
| 6 | You Save (2 transactions: Status, Claim) | | |`throw new PhabricatorApplicationTransactionNoEffectException` | |
| 7 | | The `PhabricatorApplicationTransactionEditor` is not aware of the expansions and thinks that the Claim action just does nothing. | |
| 7.9 | | `throw new PhabricatorApplicationTransactionNoEffectException` | |
| 8 | You see that warning The mentioned error is shown | | |