Recuperar: ¿rechazar la promesa y detectar el error si el estado no es correcto?

Esto es lo que tengo:

import 'whatwg-fetch';

function fetchVehicle(id) {
    return dispatch => {
        return dispatch({
            type: 'FETCH_VEHICLE',
            payload: fetch(`http://swapi.co/api/vehicles/${id}/`)
                .then(status)
                .then(res => res.json())            
                .catch(error => {
                    throw(error);
                })
            });
    };
}

function status(res) {
    if (!res.ok) {
        return Promise.reject()
    }
    return res;
}

EDITAR: La promesa no se rechaza, eso es lo que estoy tratando de resolver.

Estoy usando estobuscar polyfill en Redux conredux-promise-middleware.

Respuestas a la pregunta(3)

Su respuesta a la pregunta