title: How to work around GraphQL error, field "x" must not have a selection since type "String" has no subfields
body: <p>I am using Gatsby and GraphQL, and I am new to GraphQL.</p>
  
  <p>I have the following schema definition:</p>
  
  <pre class="lang-js prettyprint-override"><code>exports.createSchemaCustomization = ({ actions }) =&gt; {
    const { createTypes } = actions;
    const typeDefs = `
      type MarkdownRemark implements Node {
        frontmatter: Frontmatter
      }
      type Frontmatter {
        title: String!
        products: [Product]
      }
      type Product @dontInfer {
        name: String!
        price(price: Int = 1): Float
        description: String
        images: [ProductImage]
      }
      type ProductImage {
        url: String
      }
    `;
    createTypes(typeDefs);
  };
  </code></pre>
  
  <p>Then on my page I use the following query:</p>
  
  <pre><code>query {
    markdownRemark(fileRelativePath: { eq: "/content/pages/products.md" }) {
      ...TinaRemark
      frontmatter {
        title
        products {
          name
          price
          description
          images {
            url {
              childImageSharp {
                fluid(maxWidth: 1920) {
                  ...GatsbyImageSharpFluid_withWebp
                }
              }
            }
          }
        }
      }
      html
    }
  }
  </code></pre>
  
  <p>I then receive the following error:</p>
  
  <pre><code>Field "url" must not have a selection since type "String" has no subfields.
  </code></pre>
  
  <p>Does anyone have any suggestions on how to work around this error?</p>
  
  <p>Also, what is <code>childImageSharp</code>? I'm wondering what the terminology is to define it. Is it a GraphQL "selector" or "function"?</p>