Apollo-client: [ERROR] Client errors out with undecipherable error string

Created on 30 Oct 2018  ยท  10Comments  ยท  Source: apollographql/apollo-client

Just started getting this error out of the blue. I know there's nothing wrong with my queries because everything was working fine yesterday and nothing has changed since.

Error: Encountered a sub-selection on the query, but the store doesn't have an object reference. This should never happen during normal use unless you have custom code that is directly manipulating the store; please file an issue.

I did try to resolve this by purging node_modules, it worked for a while but then this resurfaced.

UPDATE
I'm on these versions -

{
    "apollo-cache-inmemory": "1.2.1",
    "apollo-client": "2.3.5",
    "apollo-link-context": "1.0.8",
    "apollo-link-error": "1.0.9",
    "apollo-link-http": "1.5.4"
}

UPDATE 2


In case you want to see the stack trace (click)

E:/CODENAME/web/node_modules/apollo-cache-inmemory/lib/readFromStore.js:143
readStoreResolver
E:/CODENAME/web/node_modules/apollo-cache-inmemory/lib/readFromStore.js:41
executeField
E:/CODENAME/web/node_modules/graphql-anywhere/lib/graphql.js:70
(anonymous function)
E:/CODENAME/web/node_modules/graphql-anywhere/lib/graphql.js:27
executeSelectionSet
E:/CODENAME/web/node_modules/graphql-anywhere/lib/graphql.js:22
graphql
E:/CODENAME/web/node_modules/graphql-anywhere/lib/graphql.js:17
diffQueryAgainstStore
E:/CODENAME/web/node_modules/apollo-cache-inmemory/lib/readFromStore.js:132
InMemoryCache../node_modules/apollo-cache-inmemory/lib/inMemoryCache.js.InMemoryCache.diff
E:/CODENAME/web/node_modules/apollo-cache-inmemory/lib/inMemoryCache.js:107
QueryManager../node_modules/apollo-client/core/QueryManager.js.QueryManager.fetchQuery
E:/CODENAME/web/node_modules/apollo-client/core/QueryManager.js:192
QueryManager../node_modules/apollo-client/core/QueryManager.js.QueryManager.startQuery
E:/CODENAME/web/node_modules/apollo-client/core/QueryManager.js:643
ObservableQuery../node_modules/apollo-client/core/ObservableQuery.js.ObservableQuery.setUpQuery
E:/CODENAME/web/node_modules/apollo-client/core/ObservableQuery.js:403
ObservableQuery../node_modules/apollo-client/core/ObservableQuery.js.ObservableQuery.onSubscribe
E:/CODENAME/web/node_modules/apollo-client/core/ObservableQuery.js:372
(anonymous function)
E:/CODENAME/web/node_modules/apollo-client/core/ObservableQuery.js:37
new Subscription
E:/CODENAME/web/node_modules/zen-observable/lib/Observable.js:183
ObservableQuery.subscribe
E:/CODENAME/web/node_modules/zen-observable/lib/Observable.js:262
ProxyComponent.Query._this.startQuerySubscription
E:/CODENAME/web/node_modules/react-apollo/react-apollo.browser.umd.js:290
ProxyComponent../node_modules/react-apollo/react-apollo.browser.umd.js.Query.componentDidMount
E:/CODENAME/web/node_modules/react-apollo/react-apollo.browser.umd.js:377
ProxyComponent.<anonymous>
E:/CODENAME/web/node_modules/react-hot-loader/dist/react-hot-loader.development.js:530
commitLifeCycles
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:9784
commitAllLifeCycles
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:11455
HTMLUnknownElement.callCallback
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:100
Object.invokeGuardedCallbackDev
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:138
invokeGuardedCallback
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:187
commitRoot
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:11594
completeRoot
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:12502
performWorkOnRoot
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:12452
performWork
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:12370
performSyncWork
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:12347
requestWork
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:12247
scheduleWorkImpl
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:12122
scheduleWork
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:12082
Object.enqueueSetState
E:/CODENAME/web/node_modules/react-dom/cjs/react-dom.development.js:6644
ProxyComponent../node_modules/react/cjs/react.development.js.Component.setState
E:/CODENAME/web/node_modules/react/cjs/react.development.js:238
(anonymous function)
E:/CODENAME/web/node_modules/react-router/es/Router.js:103
(anonymous function)
E:/CODENAME/web/node_modules/react-router/es/createTransitionManager.js:228
(anonymous function)
E:/CODENAME/web/node_modules/react-router/es/createTransitionManager.js:83
done
E:/CODENAME/web/node_modules/react-router/es/AsyncUtils.js:74
(anonymous function)
E:/CODENAME/web/node_modules/react-router/es/AsyncUtils.js:80

๐Ÿšง in-triage

Most helpful comment

@bryancuster I was able to fix a similar issue by aliasing the tuple.js file instead of .mjs in my webpack config:

resolve {
  alias {
    'immutable-tuple': 'immutable-tuple/dist/tuple.js'
  }
}

Probably not the ideal solution...

All 10 comments

Same for me, these are my top-level deps:

โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”€ [email protected]  deduped
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ”œโ”€โ”€ [email protected]  deduped
โ”‚ โ”œโ”€โ”€ [email protected]  deduped
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ”œโ”€โ”€ [email protected]
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ””โ”€โ”€ [email protected]  deduped
โ”œโ”€โ”ฌ [email protected]
โ”‚ โ”œโ”€โ”€ [email protected]  deduped
โ”‚ โ””โ”€โ”ฌ [email protected]
โ”‚   โ””โ”€โ”€ [email protected]  deduped
โ””โ”€โ”€ [email protected]

I've encountered this error as well, ~and took a closer look at where the error is thrown. It does seem like a util that is being used in assertIdValue is missing~

edit: Seems to only be chrome debugger not finding the util ๐Ÿค•

I think I just resolved this by upgrading all apollo-* deps. I'm not sure if this is the solution because god knows what other problems this is going to create.

@krijoh92 No I think that's correct. See my stack trace in op.

I've also updated all apollo-* deps, and it seems to be working (other than a small hickup with the Query component I needed to fix)

Just a heads-up: You only need to upgrade apollo-cache-inmemory.

Updating apollo-cache-inmemory to the latest (or anything newer than 1.2.10 I believe) causes the following:

Uncaught ReferenceError: module is not defined at eval (tuple.mjs?f76c:1) at Module../node_modules/immutable-tuple/dist/tuple.mjs (vendor.cdf7cdc9.js:10455) at __webpack_require__ (main.cdf7cdc9.js:788) at fn (main.cdf7cdc9.js:151) at eval (index.js?4251:4) at Object../node_modules/optimism/lib/index.js (vendor.cdf7cdc9.js:14194) at __webpack_require__ (main.cdf7cdc9.js:788) at fn (main.cdf7cdc9.js:151) at eval (optimism.js?40d9:1) at Module../node_modules/apollo-cache-inmemory/lib/optimism.js (vendor.cdf7cdc9.js:1619)

I thought there was a related issue for that over in https://github.com/benjamn/optimism/issues but I can't seem to locate it.

Was able to fix this error but updating to "apollo-cache-inmemory": "1.3.8"

@bryancuster I was able to fix a similar issue by aliasing the tuple.js file instead of .mjs in my webpack config:

resolve {
  alias {
    'immutable-tuple': 'immutable-tuple/dist/tuple.js'
  }
}

Probably not the ideal solution...

This is no longer an issue with modern versions of apollo-client. Thanks!

Was this page helpful?
0 / 5 - 0 ratings