cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
david2
Level: Powered On

Use of the Navigate function within the Concurrent function is not allowed

The use of the navigate function within the concurrent function has previously been allowed. Today, I am seeing the error "Use of the Navigate function within the Concurrent function is not allowed".Mmy application is broken due to this change. I have not seen this change documented in any release notes. I understand if this change needed to be made, but some advanced notice for changes that will break functionality and in turn, entire applications, would be appreciated.

1 ACCEPTED SOLUTION

Accepted Solutions
Microsoft Employee

Re: Use of the Navigate function within the Concurrent function is not allowed

Hi @david2 and @vverbj,

 

We apologize for the frustration and inconsistency you encountered this past week. The behavior change you describe was intended as a bug fix to correct reliability issues, however the full impact of the change was not well understood.

 

We pushed out a change this past Friday to mitigate the change that moves the new behavior to a preview flag which existing apps can test with called "More reliable Concurrent function." Going forward, this will eventually be turned on for all apps, however having this switch allows us to more slowly make the transition.  This should be the general process going forward for any breaking change and misses like this are treated with high priority.

 

We made this change because the use of Navigate and other screen changing functions (Launch, Exit, Back) could lead to a race condition in the Concurrent function which could lead to inconsistent behavior.  We believe the use of these functions can be moved to after the Concurrent call without noticeably changing the apps behavior.  Please let us know if there are important scenarios for using these functions within Concurrent.

 

Again, we apologize for the frustration this caused and hope that the preview flag method will allow for a smoother transition in the future.

 

Thanks,

Michael

View solution in original post

5 REPLIES 5
Community Support Team
Community Support Team

Re: Use of the Navigate function within the Concurrent function is not allowed

Hi @david2,

 

According to https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/functions/function-concurrent,

Formulas within the Concurrent function shouldn't contain dependencies on other formulas within the same Concurrent function, and PowerApps shows an error if you try. 

Please check if your formula has avoid the issue above.

 

Also, you can try to chain multiple formulas together with the ; (or ;;) operator, which evaluates each sequentially in order as the temporary workaround.

 

Regards,

Mona

 

Community Support Team _ Mona Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
vverb
Level: Powered On

Re: Use of the Navigate function within the Concurrent function is not allowed

I am currently experiencing the same mass errors in several of my previously working Canvas apps. Some controls don't even raise errors at all! (f.e. gallery item onSelect's used as a navigation menu, these have just stopped working without raising formula- or runtime errors!!!) As the OP indicates it was previously allowed and working functionality to call the Navigate function from inside a Concurrent function. This is not a dependancy issue as you suggest, @v-monli-msft

 

As mentioned, if this is an unavoidable change it is acceptable IF properly communicated. A change like this can break many existing and WORKING apps without notice. Our organisation is currently trying out PowerApps as a solution for internal use, but this kind of behaviour from your (PowerApps) end does not instill confidence in me. I'm not planning to regularly check working apps to check if you released another NINJA patch that broke my code.

 

If this lack of communication is going to be common practice I'm going to have to advice the termination of our internal use of your product before we become dependant on something that can break at any time, without notice or proper explanation. I hope wholeheartedly that it won't come to that, because your product has a lot of potential.

 

Sincerely

Microsoft Employee

Re: Use of the Navigate function within the Concurrent function is not allowed

Hi @david2 and @vverbj,

 

We apologize for the frustration and inconsistency you encountered this past week. The behavior change you describe was intended as a bug fix to correct reliability issues, however the full impact of the change was not well understood.

 

We pushed out a change this past Friday to mitigate the change that moves the new behavior to a preview flag which existing apps can test with called "More reliable Concurrent function." Going forward, this will eventually be turned on for all apps, however having this switch allows us to more slowly make the transition.  This should be the general process going forward for any breaking change and misses like this are treated with high priority.

 

We made this change because the use of Navigate and other screen changing functions (Launch, Exit, Back) could lead to a race condition in the Concurrent function which could lead to inconsistent behavior.  We believe the use of these functions can be moved to after the Concurrent call without noticeably changing the apps behavior.  Please let us know if there are important scenarios for using these functions within Concurrent.

 

Again, we apologize for the frustration this caused and hope that the preview flag method will allow for a smoother transition in the future.

 

Thanks,

Michael

View solution in original post

vverb
Level: Powered On

Re: Use of the Navigate function within the Concurrent function is not allowed

Hey @Michael,


Thank you for your reply and explanation. You have renewed my confidence in you guys. 

 

For the future, is there a place where (even tiny) patch notes like this one are documented and publicly accessible? I would love such a feature if it does not yet exist. 

 

As for the actual change you made: it sounds very plausible that there are various 'race' situations as you described, so I understand why the change was made; I assume something similar is the reason why Navigate has a built-in UpdateContext parameter. My reasoning for using it was that it seemed like the perfect compromise between Responsiveness and Accuracy.

 

Scenario:

An app needs to change screen and make changes to a datasource or global variable (yes, Navigate has local variable passing integration, but sometimes a global variable is more appropriate) that has an impact on what is shown on the next screen.

  • If you put the Navigate function in front of any other sequential logic you might, for a short duration, show inaccurate information on that screen, let's say before the global variable is updated and any listening controls are updated.
  • If you put the Navigate function at the end the app feels needlessly sluggish sometimes.

As a result it felt, in theory and my limited practical experience, best practice to wrap this in a concurrent function rather than manually making this balancing act case-by-case.

 

But again, I'm happy with the way this was handled and I respect and understand the decision to make this change.

 

TLDR: Apology accepted. 🙂

 

Greets,

Vince

netmarie
Level: Powered On

Re: Use of the Navigate function within the Concurrent function is not allowed

I believe this is another issue with this fix.  It appears that NOW all formulas within one chain of action events are completed before any action is visible on the screen.  This has eliminated the option to present the user with a message or timer when processing begins that shuts off when processing ends.  Previously for example, I was able to display a message like "Updating please wait" that becomes visible then hides when processing is complete.  Now, it never displays.  I've even displayed the value of the context variable for testing and it never visibly changes, even though it clearly does behind the scenes.  This is a problem.  We need to let users know something is happening when processing.

Helpful resources

Announcements
thirdimage

Power Automate Community User Group Member Badge

Fill out a quick form to claim your user group badge now!

sixthImage

Power Platform World Tour

Find out where you can attend!

Power Platform 2019 release wave 2 plan

Power Platform 2019 release wave 2 plan

Features releasing from October 2019 through March 2020

fifthimage

Microsoft Learn

Learn how to build the business apps that you need.

Top Kudoed Authors (Last 30 Days)
Users online (4,950)