Mutation Caching and local-only variables, need advice

I’m trying to understand why this isn’t being cached… And even more, why are the TypePolicies are ignored.

When I call createCart, it responds with the object from the server, and I can see the object in the dev-tools as being preset in the cache, but my local-only variables aren’t being set…

When I reload the page and it uses the query instead, the object is persisted and the local-only variables are set.

Upon further calls to query, the object is served directly from the cache.

Thanks,
Stephen

  mutation($input: CartInput!, $contextCountry: CountryCode!) @inContext(country: $contextCountry) {
    cartCreate(input: $input) {
      cart {
        ...CartFragment
      }
      userErrors {
        field
        message
      }
    }
  }
  query ($id: ID!, $contextCountry: CountryCode!) @inContext(country: $contextCountry) {
    cart(id: $id) {
      ...CartFragment
    }
  }

With some further digging, I’ve noticed that setting an empty update function to the mutation is causing my local-only variables to be populated.