Steps to reproduce:
- Have a simple Task, Open, without owner
- Add Action > Change Status > Resolved
- (An automatic Transaction is added: Claim: yourself)
- Add Action > Assign / Claim > __unset yourself__
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` expandes the transaction to set yourself as claimer | |
| 3 | Add Action > Assign / Claim > __unset yourself__ | | |
| 4 | Save | | ← On Save, we can try to skip "Expanded transactions" that were unset. |
| 5 | | ? | |
| 6 | You Save (2 transactions: Status, Claim) | | |
| 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 | | |