El tipo de error de captura en Bluebird no funciona

Tengo una clase de error personalizada:

class NetworkError extends Error {
  constructor() {
    super('Network Error');
    this.name = 'NetworkError';
  }
}

Y quiero manejarlo específicamente:

import {NetworkError} from '../../common/errors';
someFunc().catch(NetworkError, err => {
  // this is missed
}).catch(err => {
  // this is hit
});

Pero se está saltando mi captura personalizada y golpeando la captura general. Si lo cambio así, funciona:

someFunc().catch({name: 'NetworkError'}, err => {
  // this is hit
}).catch(err => {
  // this is missed
});

Obviamente se prefiere la primera forma. ¿Que me estoy perdiendo aqui?

Respuestas a la pregunta(1)

Su respuesta a la pregunta