CXone GET /agents/states returns empty array despite active session

Hit a weird edge case with CXone APIs. My Kotlin service calls GET /api/v2/agents/states?agentId=<uuid> expecting current state details, but it returns []. The agent is definitely logged in, handling calls, and visible in the CXone UI. Authentication uses a valid OAuth token with agent:view scope. Tried adding ?expand=state but no luck. Is there a specific header or param missing to force state hydration?