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
- Send variables: { id: "123" } with the same names
- Validate inputs before calling
- Make the variable nullable if it’s optional
Detailed fix by platform
JavaScript
- 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
- Request — variables object contents
- 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:
Similar errors
Most viewed in API
Other ways to find it
🧠 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.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026