Redux server side rendering breaks when using an apollo graphql client
<p>When I'm using an apollo provider with redux server side rendering, </p>

<p><a href="https://github.com/reactjs/redux/blob/master/docs/recipes/ServerRendering.md" rel="nofollow noreferrer">https://github.com/reactjs/redux/blob/master/docs/recipes/ServerRendering.md</a></p>

<p>I get the following warning and it breaks the server side output</p>

<pre><code>Warning: Failed context type: The context `client` is marked as required in `Apollo(Home)`, but its value is `undefined`.
    in Apollo(Home) (created by Connect(Apollo(Home)))
    in Connect(Apollo(Home)) (created by RouterContext)
    in RouterContext
    in Provider
</code></pre>

<p>However this renders fine client side.</p>

<p>app</p>

<pre><code>window.webappStart = () =&gt; {
  const initialState = window.__PRELOADED_STATE__;
  const store = createStore(rootReducer, initialState);

  const client = new ApolloClient({
    networkInterface: createNetworkInterface({ uri: 'https://api.graph.cool/simple/v1/foo' }),
  });

  render(
    &lt;ApolloProvider store={store} client={client}&gt;
      &lt;Router&gt;{routes}&lt;/Router&gt;
    &lt;/ApolloProvider&gt;,
    document.querySelector(".js-content")
  );
};
</code></pre>

<p>Here's the boilerplate apollo code</p>

<pre><code>import React from 'react';
import gql from 'graphql-tag';
import { graphql } from 'react-apollo';

// The data prop, which is provided by the wrapper below contains,
// a `loading` key while the query is in flight and posts when it is ready
function PostList({ data: { loading, posts } }) {
  if (loading) {
    return &lt;div&gt;Loading&lt;/div&gt;;
  } else {
    return (
      &lt;ul&gt;
        {posts.map(post =&gt;
          &lt;li key={post.id}&gt;
            {post.title} by {' '}
            {post.author.firstName} {post.author.lastName} {' '}
            ({post.votes} votes)
          &lt;/li&gt;
        )}
      &lt;/ul&gt;
    );
  }
}

// The `graphql` wrapper executes a GraphQL query and makes the results
// available on the `data` prop of the wrapped component (PostList here)
export default graphql(gql`
  query allPosts {
    posts {
      id
      title
      votes
      author {
        id
        firstName
        lastName
      }
    }
  }
`)(PostList);
</code></pre>