flow-router: Query param changes during navigation breaks FlowRouter
A call to FlowRouter.setQueryParams({ foo: 'bar' }), at approximately the same time as a navigation happens, breaks the FlowRouter completely - rendering the app useless.
See reproduction with instructions included in the repro app itself:
https://github.com/arggh/flow-router-waiton-issue
Just clone the repro, run npm install and meteor.

Situation where this occurred and explanation what happens:
- There is a link inside a div, that takes us to another page.
- We also have a click event listener on the link’s parent
div, which has a handler that will callFlowRouter.setQueryParams`. - User clicks on the link
- Click listener will cause a query parameter change to be triggered
waitOnwill get called on the current route- Navigation takes place and FlowRouter picks up route change
waitOnwill get called on the new routeendWaitingwill get called twice on the new routeactionwill also get called twice on the new route, once before the dynamic import promise has been resolved inwaitOn, thus breaking the app.- Any further attempts at navigating will not work
- Version of
flow-router-extrayou’re experiencing this issue 3.6.3 - Version of
Meteoryou’re experiencing this issue 1.8.1 - Browser name and its version All of them
- If you’re getting an error or exception, please provide its full stack-trace as plain-text or screenshot
meteor.js?hash=857dafb4b9dff17e29ed8498a22ea5b1a3d6b41d:1059 Exception from Tracker recompute function:
meteor.js?hash=857dafb4b9dff17e29ed8498a22ea5b1a3d6b41d:1059 Error: Can't render undefined
at checkRenderContent (blaze.js?hash=51f4a3bdae106610ee48d8eff291f3628713d847:2285)
at contentAsFunc (blaze.js?hash=51f4a3bdae106610ee48d8eff291f3628713d847:2328)
at Object.Blaze.renderWithData (blaze.js?hash=51f4a3bdae106610ee48d8eff291f3628713d847:2401)
at BlazeRenderer.materialize (renderer.js:341)
at BlazeRenderer._load (renderer.js:258)
at BlazeRenderer.proceed (renderer.js:198)
at BlazeRenderer.startQueue (renderer.js:98)
at BlazeRenderer.render (renderer.js:90)
at Route.action [as _action] (main.js:34)
at Route.callAction (route.js:304)
About this issue
- Original URL
- State: open
- Created 5 years ago
- Comments: 17 (11 by maintainers)
Commits related to this issue
- 🚢 v3.7.3 - 🐞 Fix #66, thanks to @arggh — committed to veliovgroup/flow-router by dr-dimitru 5 years ago
Hope this one related and will be fixed by #73 and #74 //cc @jankapunkt