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 (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 | | `throw new PhabricatorApplicationTransactionNoEffectException` | |
| 7 | The mentioned error is shown | | |
Things that could be inspirational:
* `PhabricatorApplicationTransaction::setIgnoreOnNoEffect()`
* https://secure.phabricator.com/D8328 (that implemented that ↑)