ember-apollo-client icon indicating copy to clipboard operation
ember-apollo-client copied to clipboard

Cannot read property 'request' of undefined

Open nesrual opened this issue 6 years ago • 3 comments

I have spent the most of the day trying to debug the following:

Ember Inspector 3.11.0
Ember 3.13.3
Ember Simple Auth 1.9.2
Node version v10.15.3

My package.json file is as follows:

{
  "name": "demo-frontend",
  "version": "0.0.0",
  "private": true,
  "description": "Demo application",
  "repository": "",
  "license": "MIT",
  "author": "",
  "directories": {
    "doc": "doc",
    "test": "tests"
  },
  "scripts": {
    "build": "ember build",
    "lint:hbs": "ember-template-lint .",
    "lint:js": "eslint .",
    "start": "ember serve",
    "test": "ember test"
  },
  "devDependencies": {
    "@ember/optional-features": "^1.0.0",
    "apollo-link-context": "^1.0.19",
    "babel-eslint": "^10.0.3",
    "broccoli-asset-rev": "^3.0.0",
    "ember-apollo-client": "^2.0.0-beta.6",
    "ember-auto-import": "^1.5.3",
    "ember-cli": "~3.13.1",
    "ember-cli-app-version": "^3.2.0",
    "ember-cli-babel": "^7.12.0",
    "ember-cli-dependency-checker": "^3.2.0",
    "ember-cli-eslint": "^5.1.0",
    "ember-cli-htmlbars": "^4.0.5",
    "ember-cli-inject-live-reload": "^2.0.2",
    "ember-cli-sri": "^2.1.1",
    "ember-cli-template-lint": "^1.0.0-beta.3",
    "ember-cli-uglify": "^3.0.0",
    "ember-export-application-global": "^2.0.0",
    "ember-fetch": "^6.7.1",
    "ember-load-initializers": "^2.1.0",
    "ember-maybe-import-regenerator": "^0.1.6",
    "ember-qunit": "^4.5.1",
    "ember-resolver": "^5.3.0",
    "ember-simple-auth": "^1.9.2",
    "ember-source": "~3.13.3",
    "eslint-plugin-ember": "^7.1.0",
    "eslint-plugin-node": "^10.0.0",
    "graphql": "^14.5.8",
    "loader.js": "^4.7.0",
    "qunit-dom": "^0.9.0"
  },
  "engines": {
    "node": "8.* || >= 10.*"
  },
  "dependencies": {
    "jshint": "^2.10.2",
    "npm-check-updates": "^3.1.9"
  }
}

I have a simple graphql query:

query allBooksQuery {
  allBooks {
    id
    title
    releaseDate
  }
}

which is being called from a route:

import Route from "@ember/routing/route";
import { queryManager } from "ember-apollo-client";
import query from "../../gql/queries/books.graphql";

export default Route.extend({
  apollo: queryManager(),

  model(params) {
    let variables = { };
    return this.apollo.watchQuery({ query, variables }, "allBooks");
  }
});

However this results in the following error:

Error while processing route: books Cannot read property 'request' of undefined TypeError: Cannot read property 'request' of undefined
    at isTerminating (webpack://__ember_auto_import__/./node_modules/apollo-link/lib/bundle.esm.js?:56:15)
    at concat (webpack://__ember_auto_import__/./node_modules/apollo-link/lib/bundle.esm.js?:193:7)
    at ApolloLink.concat (webpack://__ember_auto_import__/./node_modules/apollo-link/lib/bundle.esm.js?:218:12)
    at Class.<anonymous> (http://localhost:4200/assets/da-frontend.js:467:23)
    at http://localhost:4200/assets/vendor.js:16831:34
    at untrack (http://localhost:4200/assets/vendor.js:14748:7)
    at ComputedProperty.get (http://localhost:4200/assets/vendor.js:16830:13)
    at Class.CPGETTER_FUNCTION [as link] (http://localhost:4200/assets/vendor.js:14539:25)
    at Class.clientOptions (http://localhost:4200/assets/vendor.js:65044:9)
    at Class.init (http://localhost:4200/assets/vendor.js:64984:24)
logError @ router.js:1211
error @ router.js:1148
triggerEvent @ router.js:1311
triggerEvent @ router.js:178
trigger @ router_js.js:467
transitionDidError @ router.js:200
(anonymous) @ router_js.js:273
invokeCallback @ rsvp.js:493
publish @ rsvp.js:476
publishRejection @ rsvp.js:412
(anonymous) @ rsvp.js:19
invoke @ backburner.js:338
flush @ backburner.js:229
flush @ backburner.js:426
_end @ backburner.js:960
Backburner._boundAutorunEnd @ backburner.js:629
Promise.then (async)
iterations @ backburner.js:28
flush @ index.js:53
_scheduleAutorun @ backburner.js:1179
_ensureInstance @ backburner.js:1167
schedule @ backburner.js:776
schedule @ index.js:372
waitForDOMReady @ application.js:435
init @ application.js:347
superWrapper @ index.js:367
initialize @ core_object.js:92
create @ core_object.js:695
(anonymous) @ app-boot.js:3
bundle.esm.js:56 Uncaught (in promise) TypeError: Cannot read property 'request' of undefined
    at isTerminating (bundle.esm.js:56)
    at concat (bundle.esm.js:193)
    at ApolloLink.concat (bundle.esm.js:218)
    at Class.<anonymous> (service.js:27)
    at index.js:3336
    at untrack (index.js:1253)
    at ComputedProperty.get (index.js:3335)
    at Class.CPGETTER_FUNCTION [as link] (index.js:1044)
    at Class.clientOptions (apollo.js:155)
    at Class.init (apollo.js:95)

nesrual avatar Oct 15 '19 15:10 nesrual

Reverting to 2.0.0-beta.3 seems to solve the problem

nesrual avatar Oct 16 '19 10:10 nesrual

@nesrual Any change you can create a reproduction app? That would help a lot to debut this issue.

josemarluedke avatar Oct 22 '19 02:10 josemarluedke

@nesrual were you able to upgrade to final v2? Is this issue still relevant?

josemarluedke avatar Apr 08 '20 23:04 josemarluedke