Understanding Responses

GraphQL Response Structure

Every GraphQL response has a consistent structure with up to three fields:

{
"data": { ... }, // Query results (or null on error)
"errors": [...], // Array of errors (if any)
"extensions": { ... } // Optional metadata
}
FieldTypeDescription
dataObject | nullContains the requested data. Shape matches your query. Null if query completely failed.
errorsArrayList of errors that occurred. May exist alongside partial data.
extensionsObjectServer-specific metadata (tracing, performance hints, etc.).

Successful Response

A successful response contains data that matches your query structure:

Query
query {
user(id: "123") {
id
name
email
}
}
Response
{
"data": {
"user": {
"id": "123",
"name": "John Doe",
"email": "john@example.com"
}
}
}

Error Responses

GraphQL errors have a structured format:

{
"data": null,
"errors": [
{
"message": "User not found",
"locations": [{ "line": 2, "column": 3 }],
"path": ["user"],
"extensions": {
"code": "NOT_FOUND"
}
}
]
}
Error Fields
  • message - Human-readable error description
  • locations - Where in the query the error occurred
  • path - Which field caused the error
  • extensions - Additional error info (error codes, etc.)
Common Error Types
  • Validation - Invalid query syntax
  • Authorization - Not allowed to access field
  • Not Found - Requested resource doesn't exist
  • Internal - Server-side error

Partial Data with Errors

Unlike REST, GraphQL can return both data AND errors in the same response. This happens when some fields succeed and others fail:

{
"data": {
"user": {
"id": "123",
"name": "John Doe",
"secretData": null
}
},
"errors": [
{
"message": "Not authorized to access secretData",
"path": ["user", "secretData"]
}
]
}

Always Check for Errors

Even when data is present, check the errors array. Some fields may have failed while others succeeded.

Response Panel Features

Tigrister provides several tools for working with responses:

Body Tab
  • Format - Pretty-print JSON with indentation
  • Minify - Compact JSON (remove whitespace)
  • Copy - Copy response to clipboard
  • Syntax highlighting - JSON is color-coded
Headers Tab

View HTTP response headers. Useful for checking cache headers, rate limit info, or server version.

Detail Tab

Technical details about the request:

  • • Connection info - Server address and port
  • • TLS info - Protocol version and cipher suite
  • • Certificate info - Server certificate details
  • • DNS info - Resolved IP addresses
  • • Size breakdown - Request/response sizes

HTTP Status Codes

GraphQL typically returns HTTP 200 even for errors, but some cases use other codes:

StatusMeaningWhen
200OKQuery executed (may still have GraphQL errors in response)
400Bad RequestInvalid JSON body or malformed GraphQL syntax
401UnauthorizedMissing or invalid authentication
403ForbiddenAuthenticated but not authorized
500Server ErrorUnhandled server exception

Debugging Tips

Check Error Locations

The locations field tells you exactly which line and column caused the error.

Follow the Path

The path array shows the field hierarchy that led to the error (e.g., ["user", "posts", 0, "author"]).

Check Extensions

Error codes in extensions help identify the error type programmatically.

Use Detail Tab for Performance

Slow queries? Check timing breakdown to identify bottlenecks (DNS, TLS, server processing).