impersonation_read_only
This code is raised on a non-customer surface (the /internal voice-runtime audience or telephony provider callbacks). It is excluded from the customer OpenAPI document and is registered here so an operator reading a log line has one place to look.
A non-GET request arrived under a read-only impersonation session. The scope subset already refuses mutating endpoints; this is the independent second mechanism, so an endpoint that mutates under a read scope or declares none is still refused (18-admin-console.md §5).
Problem shape
Every non-2xx response is an RFC 9457 application/problem+json body. The type URI below is stable and machine-matchable, so branch on the final path segment (the code) and treat the status as redundant confirmation. See the error-handling guide.
{
"type": "https://docs.vocapable.com/errors/impersonation_read_only",
"title": "…",
"status": 403,
"detail": "…",
"instance": "/v1/…"
}