Koa router responding 404 and 204 using assync

I know many people already asked about this issue, but most of them were using yield (and I did try to get the correct result using it, no success) and I'm trying to get the response using assync. What I'm doing is

Router:

module.exports = function(app) {
    var router = new Router();
    var apiversion = '/api/'+ config.apiVersion + '/square';

    router.post(apiversion + '/:userId/token', square.setupToken);

    router.put(apiversion + '/:userId/token', square.renewToken);

    router.get(apiversion + '/:userId/locations', square.getSquareLocations);

    router.param('userId', square.setUser);

    app.use(router.routes());
    app.use(router.allowedMethods());
};

Controller:

function getLocations(accessToken) {
    return new Promise(function (resolve, reject) {
        request.get({
            url: config.square.locationsUrl,
            headers: {
                'Authorization': 'Bearer ' + accessToken
            },
            maxAttempts: 3,
            retryDelay: 150 // wait for 150 ms before trying again
        })
        .then(function (res) {
            var data = JSON.parse(res.body);
            resolve(data);
        })
        .catch( function (err) {
            console.error(err);
            reject(err);
        });
    });
}

exports.getSquareLocations = async function (ctx, next) {
    var squareUserInfo = await SquareUser.getByUser(this.user.id);
    var accessToken = squareUserInfo.access_token;

    ctx.body = await getLocations(accessToken);
};

I'm also getting the same result with other rest services I'm using, like a POST and a PUT, but in these cases, instead of 404 I get 204.