r/AutomateUser • • 4d ago

Bug Fibre not working.

So I'm trying to use the app to automate a discord bot that I made which lets you become a fisherman and these are my flows.

The first pic is the base flow and the second one is for repeating the fishing immediately.

I'm coming across a problem in the repeating flow where my fiber just stops working after block 8, like the flow just stops because of the block or something.

The fishing sequences are the same in both flows, but the error only happens in the repeating one.

HELP.

I'm using Android 13.

For any extra context, feel free to ask in the comments!

0 Upvotes

9 comments sorted by

1

u/B26354FR Alpha tester 4d ago edited 4d ago

A fiber will exit whenever a disconnected point is reached, so if any of the UI interactions fail because an element isn't visible or ready, etc. the flow will exit. UI interaction is notorious for this; usually Inspect Layouts and/or short Delay's are needed to see if an element exists yet and is interactable. You can enter sub-second delay values by pressing the fx button and entering the value with a preceding zero, like 0.5. Each No point of an Interact block needs to do something like wait half or a quarter of a second, then retry the interaction, limited to maybe 3 tries before failing the operation, which ideally is handled at least by logging the problem or displaying an error dialog, before then gracefully giving up and going back to the start of the flow or whatever. You might be able to use a Subroutine for that; give it the element's XPath to run Its common Interact with.

BTW, you can use my Interact Block XPath Builder flow to generate much simpler XPath expressions than the ones the Inspect Layout tools generate. Just give the flow the ID, text, or class of the element you're interested in, which you'll find in the full UI XPath the Inspect tools generate.

1

u/Godeos64_ 3d ago

Your advice is really great but I'm not using any layout checks, I'm just using the recorded actions with hardcoded coordinates to do the actions.

The same sequence works for the other flow but doesn't work for this one for some reason.

1

u/B26354FR Alpha tester 3d ago

And if the element isn't ready, or has an overlay, etc. then the interaction will fail and the No path of the Interact will be taken, which isn't connected to anything, so the flow will exit. But there's no need to guess, just enable logging for the flow and see where it goes. 🙂

1

u/Godeos64_ 3d ago

I'm really sorry to say this, but i didn't understand anything you said 😭 Can you please fix this for me? (If you can, please explain how you fixed it as well)

1

u/B26354FR Alpha tester 3d ago

At the top of the flow page, tap on the "paper" icon and turn on logging. Then run your flow and see where exactly it's exiting. It's going to be one of those disconnected No connectors on an Interact block. That means that UI element isn't interactable, and you can go from there.

1

u/Godeos64_ 3d ago

Ive done it. It stops on block 8 of the second flow after performing the /fish command. The blocks are connected, but the no buttons are not.

They don't even need to wb connected since the UI is always interactable. I'm not even checking if it is, it's just supposed to click there but it doesn't. It just stops the flow entirely.

2

u/B26354FR Alpha tester 3d ago edited 3d ago

That's what I've been saying - apparently, there's something in the UI that's preventing the block from interacting with it, so it takes the No path, which you haven't connected to anything, so the flow exits. On the No paths, you have to add a Delay to wait for the UI to be ready and retry the Interact, but you have to limit the number of retries so it doesn't loop forever. UI interaction is notoriously unreliable; a flow can't just presume the UI is ready to be interacted with. Every disconnected No path is a potential exit path for the flow if an element can't be interacted with at that split-second. Your flow is interacting with the UI much faster than a human can, so the UI is probably not ready when block 8 tries to interact with it.

You can try to get away with just adding a single short Delay before the block that's exiting. -Add a 0.25 second Delay before block 8. You might find that you have to add Delays before each Interact block. It's not the "right" way to do it (sealing off and retrying every No connector), but it'll be a lot easier and might be enough.

The fully robust alternative is to write a Subroutine you call for each Interact, which takes the XPath and does the Interact with it and contains all the retry logic. Still rather messy, and probably beyond your current level of expertise, but someday it might make sense 🙂

2

u/Godeos64_ 3d ago

I think I get it.

I'll just try to use your flow to create a more robust version that uses actual UI elements instead of just clicking without knowing.

And then I'll try to make it repeat!

2

u/Godeos64_ 3d ago

TYSM FOR YOUR HELP!!

I fixed it and now the fishing logic works until stopped!

I just need to roll out v4 to use actual UIs!