Understanding Error Propogation in Node

I'm using the Google Maps API with Node to get the formatted address of a particular location. The Maps API returns an empty array when no matching location can be found, so I'm trying to throw an error when the response array is empty using the following code:

function timeZoner(queryString) {
    const mapsApiKey = 'API_KEY';
    const googleMapsClient = require('@google/maps').createClient({
        key: mapsApiKey
    const VError = require('VError');

        address: queryString
    }, function(err, response) {

        if (!err) {

            returnedResults = response.json.results;
            if (returnedResults.length < 1) {
                console.log('no match found');
                var err1 = new Error;

            var err2 = new VError(err1, 'no matched location');

        } else {
            console.log('Maps API error');

timeZoner('this location name will not match');

Based on the example above, console will log 'no match found' as expected, but err1 is never set, or at least isn't triggering err2 and logging its message in the console as I think it should based on the VError docs. Can someone offer insight on why the error isn't getting triggered?

I'm having trouble wrapping my head around errors in Node as I'm relatively new to JS and I'm brand new to Node. I am aware of error-first callbacks and see that the fact that googleMapsClient.geocode might be the reason the error isn't triggering, but I thought VError was supposed to assist with this. I appreciate any help.