"first" parameter does not seem to work properly

Hi,

I’m trying to fetch some products with the following query:

query FetchProducts($tags: String!, $first: Int!) {
  products(first: $first, query: $tags, sortKey: PRICE) {
    edges {
      node {
        ...
      }
    }
  }
}

When I query it with:

{ tags: 'tag:my-tag', first: 20 }

I get 15 products.

When I query it with:

{ tags: 'tag:my-tag', first: 5 }

I get 1 product.

When I query it with:

{ tags: 'tag:my-tag', first: 50 }

I get 44 products.

When I take a look at the pagination object, it seems to “know” there are more products to fetch, even though I didn’t even receive the 5 I asked:

What’s happening here? I’m lost here to be honest.