Per the Wiz API reference: a 200 does not mean success. Branch on errors[].extensions.code and stop on scope or license errors instead of retrying.

Context: Problem: Wiz API calls return status 200 yet nothing worked. Wiz puts failures in the response body, so always inspect errors[].extensions.code: GRAPHQL_VALIDATION_FAILED means a field does not exist on your schema version or a wrong type was sent - the message names the offending field with line and column, so fix the query and do not loop. UNAUTHORIZED with effectiveScopes and requiredScopes means the service account lacks a read scope - the Wiz admin must update the SA. LICENSE_MISSING with requiredFeatures means the tenant is not licensed for that module (detections needs CLOUD_EVENTS_AND_DETECTION_DEFEND) - a commercial issue, stop and surface it. BAD_USER_INPUT means a bad filter shape or enum (severity INFO instead of INFORMATIONAL). QUERY_COMPLEXITY_LIMIT_EXCEEDED means the query is too deep or first is too high - narrow it.

## Matched source
Source: Source: https://github.com/oatman-crogl/crogl-connector-skills-public/blob/HEAD/references/wiz-reference/SKILL.md
Original query: "Wiz GraphQL returns HTTP 200 with an errors array - read extensions.code, not the status"
Key terms: array, code, errors, extensions, graphql, http, read, returns, status
