IONIC-3 NavController throwing can't resolve all parameters error

I have an interesting problem with IONIC-3 that I’ve not been able to solve. I am attempting to implement an auth routing which is triggered by ionViewCanEnter. However, while I can pass one nav setter, it will not allow multiple. Here is the code:

AuthService Function:

isAuthenticated(nav: NavController): boolean | Promise<any> {
const userAuth = this.uData.getAuthenticated;
const userProfile = this.uData.getUserProfile;

if (userAuth ) {
  //User is logged in, so let's check a few things.
  if (!userProfile.sign_up_complete) {
    //User has not completed sign up
    setTimeout(() => { nav.setRoot(CreateAccountPage) }, 0);
  return true
} else {
  //User is not authenticated, return to walkthrough
  setTimeout(() => { nav.setRoot(WalkthroughPage) }, 0);
  return false

Example calling:

ionViewCanEnter(): boolean | Promise<any> {
    return this.auth.isAuthenticated(this.nav);

If I have only CreateAccountPage, the script runs fine. However, when I add WalkthroughPage, it throws the following error:

Error: Can't resolve all parameters for ListingPage: (?, [object Object], [object Object], [object Object]).

Which is an error related to the AuthService. For clarity the WalkthroughPage code is as follows:

import { Component, ViewChild } from '@angular/core';
import { IonicPage, NavController, Slides } from 'ionic-angular';
import { RemoteConfigProvider } from '../../providers/remote-config/remote-config';

import { LoginPage } from '../login/login';
import { SignupPage } from '../signup/signup';

  selector: 'walkthrough-page',
  templateUrl: 'walkthrough.html'
export class WalkthroughPage {

  lastSlide = false;

  sign_up_enabled: null;
  sign_in_enabled: null;

  @ViewChild('slider') slider: Slides;

  constructor(public nav: NavController,
    public remoteConfig: RemoteConfigProvider) {

  ionViewDidLoad() {
    this.remoteConfig.getValue('sign_up_enabled').then(t => {
      this.sign_up_enabled = t;

    this.remoteConfig.getValue('sign_in_enabled').then(t => {
      this.sign_in_enabled = t;

  skipIntro() {
    this.lastSlide = true;

  onSlideChanged() {
    this.lastSlide = this.slider.isEnd();

  goToLogin() {

  goToSignup() {

I have attempted to compare both pages, but not identified the exact cause. I welcome any thoughts.


Is your service marked as @Injectable():

export class AuthService {



I fixed this issue. For those interested, I used the deep-link reference for pages which overcame the error listed.