Variable of required type was not provided 🔌 API

GraphQL: Variable "$id" of required type "ID!" was not provided.

A GraphQL operation declares a non-null variable, but the request didn’t include a value for it.

Seen on: REST API

Meaning

Variables must be sent in the variables object with exactly the declared name. Typos, sending them inside the query string, or undefined values (dropped by JSON.stringify) cause this.

Common causes

  • Variable missing from the variables object
  • Name mismatch ($userId vs $id)
  • Value undefined so JSON drops it
  • Variables sent as a string instead of an object

⚡ Quick fix

  1. Send variables: { id: "123" } with the same names
  2. Validate inputs before calling
  3. Make the variable nullable if it’s optional

Detailed fix by platform

JavaScript

  1. javascript
    await fetch("/graphql", {
      method: "POST", headers: { "Content-Type": "application/json" },
      body: JSON.stringify({ query: "query($id: ID!) { user(id: $id) { name } }", variables: { id } })
    });

How to diagnose

  1. Request — variables object contents
  2. Names — Declared vs sent

🔧 Still not fixed?

Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:

🧠 Still stuck? Analyze your error

Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.