I’m in the last steps of finishing my application.
Therefore I’m testing the main logic of my application thoroughly and I’ve run in to two unexpected behaviors of backend workflow action performance:
Values aren’t saved to Thing although logs confirm, that e.g. Value ‘X’ was written to Thing’s Field ‘Y’, i.e. confirming that the data was written to Thing.
'List a' merged with 'List b' merged with 'List c' only returns ‘List c’, although List a, b, and c are all Lists of all unique elements. This is not the behavior I expect based on what the documentation of bubble says.
For both of these cases I cannot find any workflow errors in my logs, and these cases are not a one time thing but happen again and again reliably at the same action. I’ve gone over the logic of the Expressions over and over again and am 100% certain that the implemented logic is correct (can provide screenshots If someone isn’t taking what I say at face value)
Perhaps there are further Issues I haven’t found yet.
There seems to be a bigger reliability problem in exactly performing the actions the application / bubble platform is instructed to do – maybe connected to ‘addressing problematic queries’ that Josh points out in his recent announcements?
Any one else having similar problems at the moment? It’s really frustrating to have a program not execute exactly what you tell it to do as this would be the thing you expect from a machine.
I submitted bug reports for all these but haven’t heard any constructive feedback from Bubble yet.
ISSUE 1 SOLVED
It was privacy all along (in combination with race conditions). I created the Thing where entries should be written to and added the executing user to a field (at creation) which lets the user see the relevant fields for the writing operation, and then passed the Thing into a downward workflow. However, when performing the writing operation, it seems that the user in the field that allows them to see the relevant writing fields wasn’t updated yet.
Thank you guys for pointing that out.
ISSUE 2 SOLVED
The issue no 2 was due to a malformed expression which I have to admit was stupid that I didn’t catch it earlier. I had an expression as follows:
DATASTRUCTURE
Workrequest, has field:
Phases Works (list of type Phase)
Phases Procurement (list of type Phase)
Phase, has field:
children (list) of Phase’s
FAULTY EXPRESSION
Workrequest's Phases Works merged with Workrequest's Phases Procurement merged with Workrequest's Phases Procurement:each item's children
→ The problem with this expression arises from the logical sequence of (List A + List B + List C): each item’s children, where I thought intuitively that the expression should resolve as follows: (List A + List B) + (List C’s:each items Children)
Apparently, Issue 1 still persists after adding privacy rule where creator of Thing can access all Thing’s field.
I got a reply from Bubble support giving feedback on the issue as follows:
TL;DR: When multiple workflows write data to the same thing (&field), sometimes you have to anticipate that data isn’t written properly.
“workflow-name” API workflow is scheduled and can see that this behavior is related to the improvements on the speed and power of scheduling an API workflow on a list. If you have an action that makes changes to the same exact thing in each instance of the workflow, then it can cause complications trying to add different things to the same field at roughly the same time (This race condition only occurs when a ‘Schedule API Workflow on a list’ action schedules an API workflow that contain an action to make changes the same thing).
So in terms of your app, since multiple instances of the “a-r-privacy-folder-files-gather-shared” API workflow is being scheduled to run at the same exact time, it is also causing actions like “add-number-scheduled” and “add-number-completed” to schedule API workflows for the same exact time as well.
A way to avoid this would be to add an interval to when you schedule the API workflow on the list to give more breathing room between each run of the workflow:
In my opinion, this is a MAJOR FLAW of the system as the program doesn’t do what it’s supposed to on a non logical basis. i.E. We cannot trust the workflow actions to execute as intended. Wdyt?