Promises in the actions are plumbed together in a non-consistent way. Sometimes they use then/catch chaining, sometimes they are constructed globally and then resolve/reject is used. Sometimes, both ways are even mixed together.
We should review the code and fix all usages of Promises to use chaining. That's more readable in general and gives more guarantees on the Promise being actually resolved at some point.