Почему ждать не ждать? И почему Sequelize не отвечает ни на ошибку?

Как вы можете видеть в .gif ниже, при первом вызове моей базы данных он успешно возвращает данные. Но в следующие два раза он не возвращает ни ошибок, асинхронный код просто исчезает. И что еще хуже, мое выражение ожидания не ждет ответа, оно просто продолжается.

Может ли кто-нибудь сказать мне, почему последующие вызовы Sequelize исчезают? И что еще более важно, почему код вызова продолжает работать, хотя я использовал await?

введите описание изображения здесь

Вот самый внутренний код:

getRolesAndPermissionsForUser(userId: string): Promise<[IRoleModel]> {
    return new Promise<[IRoleModel]>( async (resolve: any, reject: any) => {
      try {
        const rows = await this._db.getSequelize().transaction( (transaction) => {
          return this._db.getSequelize().query(getRolesAndPermissionsForUserSql, { type: Sequelize.QueryTypes.SELECT, replacements: [userId]  });
        })
        resolve(this.convertRolesToTree(rows));
      }
      catch (error) { reject(error); }
    });
  }

вызванный:

async function hasPermission(hapiResolve: (response: any) => void, requestingUserId: string, requestedUserId: string, requestedUsersRoles: any[]): Promise<boolean> {
      return new Promise<boolean>( (resolve, reject) => {
        try {
          //user is seeng her own roles
          let result = (requestingUserId === requestedUserId);

          //user manages a franchisor the requestee is part of
          if (!result) {
            requestedUsersRoles.forEach( async (role) => {
              if (!result) { //may have found it last iteration
                const userHasOrgPermission = await self._bouncer.doesUserHavePermission(null, requestingUserId, DatabaseIds.enum__permissions__canViewAllRolesOfAnyUseratThisFranchisor, role.franchisorId, null)
                if (userHasOrgPermission) result = true;
              }
            })
          }

          //user manages a franchisee the requestee is part of
          if (!result) {
            requestedUsersRoles.forEach( async (role) => {
              if (!result) { //may have found it last iteration
                const userHasOrgPermission = await self._bouncer.doesUserHavePermission(null, requestingUserId, DatabaseIds.enum__permissions__canViewAllRolesOfAnyUseratThisFranchisor, null, role.franchiseeId)
                if (userHasOrgPermission) result = true;
              }
            })
          }

          if (!result)
            hapiResolve(responseHelper.getErrorResponse(ResponseErrorCode.notAuthorised));
          resolve(result);
        }
        catch (error) {
          console.trace(error);
          reject(error);
        }
      });
    }

  doesUserHavePermission(hapiResolve: (response: any) => void, userId: string, permissionId: string, franchisorId: string, franchiseeId: string): Promise<boolean> {
    return new Promise<boolean>( async (resolve, reject) => {
      try {
        const roles = await this._rolesQueries.getRolesAndPermissionsForUser(userId);
                if (!this.doRolesHavePermission(roles, permissionId, franchisorId, franchiseeId)) {
          if (hapiResolve)
            hapiResolve(responseHelper.getErrorResponse(ResponseErrorCode.notAuthorised));
          resolve(false);
        }
        else resolve(true);
            }
      catch (error) {
        if (hapiResolve)
                hapiResolve(responseHelper.getErrorResponse(ResponseErrorCode.unknownError));
                reject(error);
            }
        });
  }