Hello Everyone, I'm glad to be back among you!
It seems that now Bots are failing when there's an action with an "Only if this condition is true" condition configured. If the condition's expression result is FALSE, instead of just omitting launching the action as it has been the case since forever, AppSheet servers now exhibit the following behavior:
- Actions launched on the device, i.e. through an action button, behave normally.
- Actions launched through Automation, from Bots, fail with an error when the condition is not fulfilled.
- What is fatal is that the WHOLE Bot fails and all subsequent steps in the bot's process are not executed, generating all kind of data errors you can imagine from Bots in limbo that had neither stopped from running nor completed, but simply stopped in the middle ruining all kinds of workflows and data checks you had put in place to ensure production data sanity.
The problem was reported to me from everyone on Friday, and I spent the whole weekend day and night replacing all of the these bots.
The workarounds I implemented are:
- Move the whole bot when possible to a grouped Form-Save action. On top of the extra-complexity. involved, this has the disadvantages of:
- NOT accommodating for data changes that are not triggered by a form-save event.
- Dependence on the user's device and whether it completes the whole process, slowing down the originating user's UX and slower reflection of data changes to other users.
- Separating each of the failing steps in its own bot using the following steps:
- In place of the failing step in the original bot, launch an action to create a new row in another table with the columns holding the data you need. YES unfortunately you have to create an unnecessary new buffer table.
- Create a new Bot on an event of adding a new row to that buffer table, and put the failing step in that bot. This bot will execute till the action's condition fails then the bot will fail, but it will NOT affect the original calling bot which will continue to execute its steps.
The major disadvantage here is that you can NOT control the order of steps as it was the case when they were all inside the same bot, so you have to be aware of this and act accordingly implementing further controls to make sure you maintain integrity of data.
- I would strongly discourage dividing the failing bots into both device-based actions (buttons, form-save) and server-based automation through bots. Either you move the whole failing bots to a grouped action triggered by user interaction, or keep the bot while moving the failing steps to new bots as in B.
I'm glad I kept my customers happy and ensured their business continuity. However, besides my own wasted time handling customer complaints, investigating and implementing solution, I can't really process how would AppSheet people implement such a change silently with a devastating impact on production apps! How could you for 3-4 days now be silent after a change causing such panic! For the first time ever sine I adopted AppSheet as the number-one preferred and recommended platform to my clients, even for very complex processes, putting it at the heart of the whole ecosystem, I'm now wondering whether this would be a wise decision to make.
Too bad AppSheet, just too bad !!
