El efecto ngrx no se llama cuando la acción se envía desde el componente

Tengo un problema con la tienda ngrx que no envía una acción en el sentido que se supone que debe lidiar con eso.

Aquí está el componente que intenta despachar:

  signin() {
    this.formStatus.submitted = true;
    if (this.formStatus.form.valid) {
      this.store.dispatch(new StandardSigninAction(this.formStatus.form.value.credentials));
    }
  }

Las acciones:

export const ActionTypes = {
  STANDARD_SIGNIN: type('[Session] Standard Signin'),
  LOAD_PERSONAL_INFO: type('[Session] Load Personal Info'),
  LOAD_USER_ACCOUNT: type('[Session] Load User Account'),
  RELOAD_PERSONAL_INFO: type('[Session] Reload Personal Info'),
  CLEAR_USER_ACCOUNT: type('[Session] Clear User Account')
};

export class StandardSigninAction implements Action {
  type = ActionTypes.STANDARD_SIGNIN;

  constructor(public payload: Credentials) {
  }
}
...

export type Actions
  = StandardSigninAction
  | LoadPersonalInfoAction
  | ClearUserAccountAction
  | ReloadPersonalInfoAction
  | LoadUserAccountAction;

El efecto:

  @Effect()
  standardSignin$: Observable<Action> = this.actions$
    .ofType(session.ActionTypes.STANDARD_SIGNIN)
    .map((action: StandardSigninAction) => action.payload)
    .switchMap((credentials: Credentials) =>
      this.sessionSigninService.signin(credentials)
        .map(sessionToken => {
          return new LoadPersonalInfoAction(sessionToken);
        })
    );

Puedo ver en la depuración que el componente llama al método de envío. También puedo confirmar queStandardSigninAction de hecho se instancia porque se golpea el punto de interrupción en el constructor.

Pero elstandardSignin$ el efecto no se llama ...

¿Qué puede causar un efecto que no se llama?

¿Cómo puedo depurar lo que está sucediendo dentro de la tienda?

¿Puede ayudarme alguien, por favor?

PD Realizo el efecto anterior de la siguiente manera en mis importaciones:

EffectsModule.run(SessionEffects),

editar: Aquí está mi método SessionSigninService.signin (devuelve un Observable)

  signin(credentials: Credentials) {
    const headers = new Headers({'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'});
    const options = new RequestOptions({headers: headers});
    const body = 'username=' + credentials.username + '&password=' + credentials.password;
    return this.http.post(this.urls.AUTHENTICATION.SIGNIN, body, options).map(res => res.headers.get('x-auth-token'));
  }

Respuestas a la pregunta(2)

Su respuesta a la pregunta