{"error": "invalid_token", "message": "Bearer token expired during extraction pipeline."} is what the Cognigy extraction endpoint returns right after the Python requests.post() call finishes. The payload has the utterance text array and confidence threshold set, but the token drops before the automatic normalization trigger fires. I’m struggling with the OAuth token refresh flow in the GC API. First time implementing this, so I’m confused about whether the grant type or scope requirements are causing the early expiry. Retrying with the same idempotency key just doubles the audit logs instead of fixing the entity match. The webhook callback never gets the normalized values anyway.