I recently lost a bunch of data due to a "failed to verify premium"
error.
I made a ranting review on Google Play and the response told me that premium verification is handled by Google Play, and to read
the premium info page where I found no solution to my problem.
The thing is, nothing the user can do, could possibly address the consequences of this error. Even if I restore the verification successfully, the damage is already done.
For one thing, it immediately kills running flows as soon as it happens, which breaks multi-step processes that rely on each other / a specific order, leading to unexpected side effects, some irreversible.
Second, sometimes the successful verification after the failure is itself the cause of the problem. In my case, an "Audio record" block resumed after stopping, which ended up deleting the original recording by overwriting it with the newly started recording. By the time I even saw the error message, the verification already resolved, and the data was already lost.
Possible suggestions:
- A grace period before stopping flows. Even when Google blocks the premium status, Automate can still take a while to let the user know what happened, so they can take steps to prevent the damage, either by resolving the verification error, or by manually stopping flows before the restrictions kick in. I think a few minutes should do in most cases, but better be safe with a few hours (e.g. when not looking at the phone and the verification isn't automatically resolved).
- Making exceptions for some sensitive types of block (e.g. blocks that read/write to storage). This option is problematic, both because it's difficult to determine which blocks to exclude in advance, and because many processes depend on the relationship between multiple blocks. Not to mention it could let users use more than we paid for in some cases.
I'll add that I don't know how Google handles this process, and what hoops they force devs to jump through to make it work, nor do I know how Automate is implemented internally, so my
perspective is naive and I'm sure there are issues I'm not aware of, but
probably also better solutions that I can't think of.