title: Getting a network error from a refetched query after a mutation lead to an ApolloError and unsubscribe the query, am i missing something?
body: <p>I'm trying to implement react-apollo with apollo-link-rest, and everything seems wonderful except error handling and refetchQueries.</p>
  
  <p>It seems that if a query goes in error, than got unsubscribe.</p>
  
  <p>I tried to do almost everything: use awaitRefetchQueries, or using apollo-link-error but i always got this in console after the refetchedQuery went in error:</p>
  
  <pre><code>bundle.esm.js:76 Uncaught (in promise) Error: Network error: Response not successful: Received status code 500
      at new ApolloError (bundle.esm.js:76)
      at bundle.esm.js:1556
      at bundle.esm.js:1977
      at Set.forEach (&lt;anonymous&gt;)
      at bundle.esm.js:1975
      at Map.forEach (&lt;anonymous&gt;)
      at QueryManager.broadcastQueries (bundle.esm.js:1973)
      at bundle.esm.js:1451
  </code></pre>
  
  <p>Than even if the next response is 200 my Component doesn't get updated.</p>
  
  <p>queries an mutation are basics</p>
  
  <pre><code>export const emplacement = gql`
      query emplacement {
          emplacement @rest(type: "Emplacement", path: "/emplacement") {
              id
              data
          }
      }
  `
  </code></pre>
  
  <pre><code>export const completeEmplacement = gql`
      mutation completeEmplacement($body: Data!) {
          completeEmplacement(body: $body)
          @rest(
              type: "Emplacement"
              path: "/emplacement"
              method: "POST"
              bodyKey: "body"
          ) {
              msg
          }
      }
  `
  </code></pre>
  
  <p>And so are my components:</p>
  
  <pre><code>import React from "react";
  import "./gql/types";
  import { emplacement } from "./gql/queries";
  import { completeEmplacement } from "./gql/mutations";
  import { Mutation, Query } from "react-apollo";
  
  export const MutationButton = () =&gt; {
    return (
      &lt;Mutation mutation={completeEmplacement}&gt;
        {(mutate, { error, data }) =&gt; {
          return (
            &lt;&gt;
              &lt;h3&gt; MUTATION VALUE &lt;/h3&gt;
  
              &lt;p&gt; {JSON.stringify(data)}&lt;/p&gt;
              &lt;p style={{ color: "red" }}&gt; {JSON.stringify(error)} &lt;/p&gt;
              &lt;button
                onClick={() =&gt;
                  mutate({
                    variables: { body: { id: "1", nome: "ciao" } },
                    refetchQueries: [{ query: emplacement }],
                    awaitRefetchQueries: true
                  })
                }
              &gt;
                complete
              &lt;/button&gt;
            &lt;/&gt;
          );
        }}
      &lt;/Mutation&gt;
    );
  };
  
  export const QueryResult = () =&gt; {
    return (
      &lt;&gt;
        &lt;Query query={emplacement}&gt;
          {({ data, loading, error }) =&gt; {
            if (loading) return "....loading";
            const { emplacement = {} } = data || {};
  
            return (
              &lt;div&gt;
                &lt;h3&gt; QUERY VALUE &lt;/h3&gt;
                &lt;p&gt; {JSON.stringify(emplacement)}&lt;/p&gt;
  
                &lt;p style={{ color: "red" }}&gt;{JSON.stringify(error)}&lt;/p&gt;
              &lt;/div&gt;
            );
          }}
        &lt;/Query&gt;
      &lt;/&gt;
    );
  };
  </code></pre>
  
  <p>I expected that my query refresh every time receive a new response from the server even after a mutation.</p>
  
  <p>Instead if a query fails after a mutation, my QueryResult component doesn't get updated even if the next response goes 200.</p>