# iOS error

**URL:** <https://forums.fusetools.com/t/ios-error/2341>\
**Category:** How-to Discussions\
**Created:** [January 6, 2017, 1:06pm UTC](https://forums.fusetools.com/t/ios-error/2341 "2017-01-06T13:06:38Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Ana\_Almeida](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Ana\_Almeida](https://forums.fusetools.com/u/Ana_Almeida)\
**Post date:** [January 6, 2017, 1:06pm UTC](https://forums.fusetools.com/t/ios-error/2341/1 "2017-01-06T13:06:38Z")

</div>

Hi guys.

I have a problem with my application running on iOS.

I get the following error:

```auto
LOG: Error: Route parameter must be serializeable, cannot contain functions.</Users/anaalmeida/Library/Application Support/Fusetools/Packages/Fuse.Navigation/0.42.4/$.uno:2315>

```

In the Preview and in the Android device, it all runs with no problem.

I believe the problem is in the code:

```auto
router.push("MainPagePlanning", {}, "PlanningEdit", {planningDetails : planning.value});

```

where planning is a Observable:

```auto
var planning = this.Parameter.map(function(args){
                      ...
		      return args.args;
		});

```

Why does this error only shows on iOS? Is there something that can fix it?

Thanks!

---

<div class="post-metadata">

**Author:** ![Anders\_Lassen](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/anders_lassen/32/522_2.png) [@Anders\_Lassen](https://forums.fusetools.com/u/Anders_Lassen)\
**Post date:** [January 6, 2017, 1:48pm UTC](https://forums.fusetools.com/t/ios-error/2341/2 "2017-01-06T13:48:13Z")

</div>

Hi!

There is no particular reason why this should only happen on iOS. It depends on what you keep inside your `planning` observable. It seems that on iOS, it is a function, for some reason.

Without more code/context it is hard to say what’s wrong.

---

<div class="post-metadata">

**Author:** ![Ana\_Almeida](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Ana\_Almeida](https://forums.fusetools.com/u/Ana_Almeida)\
**Post date:** [January 6, 2017, 1:53pm UTC](https://forums.fusetools.com/t/ios-error/2341/3 "2017-01-06T13:53:17Z")

</div>

Hi Anders, thank you for your reply.

This is the code I have regarding the `planning` observable:

```auto
var Observable = require("FuseJS/Observable");
var moment = require('Modules/Moment/moment.js');
var _ = require("Modules/Lodash/lodash.js");

var date = Observable('');
var projectName = Observable('');
var breakdownName = Observable('');
var timeFrom = Observable('');
var timeTo = Observable('');
var duration = Observable('');
var status = Observable('');
var location = Observable('');
var projectManager = Observable('');
var resource = Observable('');
var otherResources = Observable();
var description = Observable('');
var remarks = Observable('');

var planning = this.Parameter.map(function(args){
	date.value = moment(args.args.data.date).format('dddd, D MMMM YYYY');
	timeFrom.value = args.args.data.timeFrom;
	timeTo.value = args.args.data.timeTo;
	duration.value = args.args.data.hours;
	projectName.value = args.args.data.projectName;
	breakdownName.value = args.args.data.breakdownName;
	status.value = args.args.data.status;
	location.value = args.args.data.location;
	resource.value = args.args.data.resourceFullName;
	otherResources.clear();
	_.forEach(args.args.data.resources, function(resource){
		otherResources.add({name : resource.name});
	});
	description.value = args.args.data.description;
	remarks.value = args.args.data.remarks;
	projectManager.value = args.args.data.projectManager;

	return args.args;
});

```

Do you see anything that may be causing this error on iOS?

---

<div class="post-metadata">

**Author:** ![Anders\_Lassen](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/anders_lassen/32/522_2.png) [@Anders\_Lassen](https://forums.fusetools.com/u/Anders_Lassen)\
**Post date:** [January 6, 2017, 1:56pm UTC](https://forums.fusetools.com/t/ios-error/2341/4 "2017-01-06T13:56:47Z")

</div>

Hi,

It is very bad practice to use `.map()` to write to external observables like this, it can cause all sorts of errors, and requires a separate subscription to `planning`. The point with `.map()` is to return a new value, not to cause side effects.

Consider using `this.Parameter.onValueChanged(module, function(p) { ...` instead.

Try doing a `console.dir(args.args)` and see what comes out in the console.

---

<div class="post-metadata">

**Author:** ![Ana\_Almeida](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Ana\_Almeida](https://forums.fusetools.com/u/Ana_Almeida)\
**Post date:** [January 9, 2017, 2:03pm UTC](https://forums.fusetools.com/t/ios-error/2341/5 "2017-01-09T14:03:42Z")

</div>

I’ve changed the code to include `this.Parameter.onValueChanged(module, function(p) { ... }`

```auto
this.Parameter.onValueChanged(module, function(p){
	date.value = moment(p.args.data.date).format('dddd, D MMMM YYYY');
	timeFrom.value = p.args.data.timeFrom;
	timeTo.value = p.args.data.timeTo;
	duration.value = p.args.data.hours;
	projectName.value = p.args.data.projectName;
	breakdownName.value = p.args.data.breakdownName;
	status.value = p.args.data.status;
	location.value = p.args.data.location;
	resource.value = p.args.data.resourceFullName;
	otherResources.clear();
	_.forEach(p.args.data.resources, function(resource){
		otherResources.add({name : resource.name});
	});
	description.value = p.args.data.description;
	remarks.value = p.args.data.remarks;
	projectManager.value = p.args.data.projectManager;

	planning.value = p.args;
});

```

but still get the same error, only on iOS.

```auto
Error: Route parameter must be serializeable, cannot contain functions.</Users/anaalmeida/Library/Application Support/Fusetools/Packages/Fuse.Navigation/0.42.4/$.uno:2315>

```

---

<div class="post-metadata">

**Author:** ![Anders\_Lassen](https://yyz1.discourse-cdn.com/flex035/user_avatar/forums.fusetools.com/anders_lassen/32/522_2.png) [@Anders\_Lassen](https://forums.fusetools.com/u/Anders_Lassen)\
**Post date:** [January 11, 2017, 1:20pm UTC](https://forums.fusetools.com/t/ios-error/2341/6 "2017-01-11T13:20:44Z")

</div>

Try to print the route parameters i.e. the values passed to `router.push(..)` or `router.goto(..)` to the console on iOS, it seems to contain a function, for some reason.

---

<div class="post-metadata">

**Author:** ![Ana\_Almeida](https://avatars.discourse-cdn.com/v4/letter/a/bbe5ce/32.png) [@Ana\_Almeida](https://forums.fusetools.com/u/Ana_Almeida)\
**Post date:** [January 18, 2017, 12:21am UTC](https://forums.fusetools.com/t/ios-error/2341/7 "2017-01-18T00:21:01Z")

</div>

Solved it by playing around with the arguments. But still don’t know why on Android and Preview it worked.

Thanks for your help.
