Crash on Android back button

My app is Crashing on Android after press back button.

for some reason this happen after a router.goto call.

The full uno error

[Moto G (5) Plus]: Uno.NullReferenceException: Object reference was null
   at Fuse.Navigation.Router.GoUp()
   at Fuse.Navigation.Router.GoBack()
   at Fuse.Navigation.Router.OnKeyPressed(object,Fuse.Input.KeyEventArgs)
   at Fuse.Input.KeyPressed.Invoke(Fuse.Input.KeyPressedHandler,object,Fuse.Input.KeyPressedArgs)
   at Fuse.VisualEvent`2.InvokeInternal(THandler,object,TArgs)
   at Fuse.VisualEvent`2.InvokeGlobalHandlers(Fuse.Visual,TArgs)
   at Fuse.VisualEvent`2.Raise(TArgs,Fuse.VisualEventMode,bool,[Uno.Action<TArgs, Uno.Collections.IList<Fuse.Visual>>])
   at Fuse.VisualEvent`2.RaiseWithBubble(TArgs,[Fuse.VisualEventMode])
   at Fuse.Input.Keyboard.RaiseKeyPressed(Uno.Platform.Key,bool,bool,bool,bool)
   at Fuse.KeyboardBootstrapper.OnKeyPressed(object,Uno.Platform.KeyEventArgs)
   at Uno.Platform.EventSources.HardwareKeys.OnKeyDown(Uno.Platform.Key,Uno.Platform.EventModifiers)
[Moto G (5) Plus]: Uno.AggregateException: One or more errors occurred.
   at Fuse.UpdateManager.CheckExceptions(Uno.Collections.List<Uno.Exception>)
   at Fuse.UpdateManager.Update(Fuse.Stage)
   at Fuse.UpdateManager.ProcessStages()
   at Fuse.UpdateManager.Update()
   at Outracks.Simulator.Client.Application.OnUpdate()
   at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)
---> (Inner Exception #0) Uno.ArgumentNullException: visual: value was null
   at Fuse.VisualEventArgs..ctor(Fuse.Visual)
   at Fuse.Triggers.Actions.Callback.Perform(Fuse.Node)
   at Fuse.Triggers.Actions.TriggerAction.PerformFromNode(Fuse.Node)
   at Fuse.Triggers.Trigger.DeferredItem.Perform()
   at Fuse.UpdateAction.Invoke()
   at Fuse.UpdateManager.ProcessDeferredActions(Fuse.Stage,Uno.Collections.List<Uno.Exception>&)
   at Fuse.UpdateManager.Update(Fuse.Stage)
   at Fuse.UpdateManager.ProcessStages()
   at Fuse.UpdateManager.Update()
   at Outracks.Simulator.Client.Application.OnUpdate()
   at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)<---

---> (Inner Exception #1) Uno.ArgumentNullException: visual: value was null
   at Fuse.VisualEventArgs..ctor(Fuse.Visual)
   at Fuse.Triggers.Actions.Callback.Perform(Fuse.Node)
   at Fuse.Triggers.Actions.TriggerAction.PerformFromNode(Fuse.Node)
   at Fuse.Triggers.Trigger.DeferredItem.Perform()
   at Fuse.UpdateAction.Invoke()
   at Fuse.UpdateManager.ProcessDeferredActions(Fuse.Stage,Uno.Collections.List<Uno.Exception>&)
   at Fuse.UpdateManager.Update(Fuse.Stage)
   at Fuse.UpdateManager.ProcessStages()
   at Fuse.UpdateManager.Update()
   at Outracks.Simulator.Client.Application.OnUpdate()
   at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)<---

---> (Inner Exception #2) Uno.ArgumentNullException: visual: value was null
   at Fuse.VisualEventArgs..ctor(Fuse.Visual)
   at Fuse.Triggers.Actions.Callback.Perform(Fuse.Node)
   at Fuse.Triggers.Actions.TriggerAction.PerformFromNode(Fuse.Node)
   at Fuse.Triggers.Trigger.DeferredItem.Perform()
   at Fuse.UpdateAction.Invoke()
   at Fuse.UpdateManager.ProcessDeferredActions(Fuse.Stage,Uno.Collections.List<Uno.Exception>&)
   at Fuse.UpdateManager.Update(Fuse.Stage)
   at Fuse.UpdateManager.ProcessStages()
   at Fuse.UpdateManager.Update()
   at Outracks.Simulator.Client.Application.OnUpdate()
   at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)<---

---> (Inner Exception #3) Uno.ArgumentNullException: visual: value was null
   at Fuse.VisualEventArgs..ctor(Fuse.Visual)
   at Fuse.Triggers.Actions.Callback.Perform(Fuse.Node)
   at Fuse.Triggers.Actions.TriggerAction.PerformFromNode(Fuse.Node)
   at Fuse.Triggers.Trigger.DeferredItem.Perform()
   at Fuse.UpdateAction.Invoke()
   at Fuse.UpdateManager.ProcessDeferredActions(Fuse.Stage,Uno.Collections.List<Uno.Exception>&)
   at Fuse.UpdateManager.Update(Fuse.Stage)
   at Fuse.UpdateManager.ProcessStages()
   at Fuse.UpdateManager.Update()
   at Outracks.Simulator.Client.Application.OnUpdate()
   at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)<---

---> (Inner Exception #4) Uno.ArgumentNullException: visual: value was null
   at Fuse.VisualEventArgs..ctor(Fuse.Visual)
   at Fuse.Triggers.Actions.Callback.Perform(Fuse.Node)
   at Fuse.Triggers.Actions.TriggerAction.PerformFromNode(Fuse.Node)
   at Fuse.Triggers.Trigger.DeferredItem.Perform()
   at Fuse.UpdateAction.Invoke()
   at Fuse.UpdateManager.ProcessDeferredActions(Fuse.Stage,Uno.Collections.List<Uno.Exception>&)
   at Fuse.UpdateManager.Update(Fuse.Stage)
   at Fuse.UpdateManager.ProcessStages()
   at Fuse.UpdateManager.Update()
   at Outracks.Simulator.Client.Application.OnUpdate()
   at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)<---

---> (Inner Exception #5) Uno.ArgumentNullException: visual: value was null
   at Fuse.VisualEventArgs..ctor(Fuse.Visual)
   at Fuse.Triggers.Actions.Callback.Perform(Fuse.Node)
   at Fuse.Triggers.Actions.TriggerAction.PerformFromNode(Fuse.Node)
   at Fuse.Triggers.Trigger.DeferredItem.Perform()
   at Fuse.UpdateAction.Invoke()
   at Fuse.UpdateManager.ProcessDeferredActions(Fuse.Stage,Uno.Collections.List<Uno.Exception>&)
   at Fuse.UpdateManager.Update(Fuse.Stage)
   at Fuse.UpdateManager.ProcessStages()
   at Fuse.UpdateManager.Update()
   at Outracks.Simulator.Client.Application.OnUpdate()
   at Fuse.App.OnTick(object,Uno.Platform.TimerEventArgs)
   at Uno.Platform.Display.OnTick(Uno.Platform.TimerEventArgs)
   at Uno.Platform.AndroidDisplay.OnFrameCallback(double,double)<---

My enviropment

Fuse 1.3.2 (1.4.0 also)
macOS Sierra 10.12.6

We won’t be able to provide meaningful support unless you provide a complete reproduction of the issue.

One thing you could check is if you have a PageControl on the page that you land on after the router.goto() call. If you do, adding a IsRouterOutlet="false" on the PageControl might help.

Uldis, glad u helped me. but thats was not the error…

I had an unused router inside of a Page.

Thank you anyway. It’s fixed now.