A caller selects one with the X-Goog-Api-Version header or the $apiVersion query parameter on the unchanged /compute/v1/ path, and a request that names no version keeps getting /v1, which has no end-of-life date. Software engineer Michael Murstein writes that the problem was the shape of /v1 itself.
Because it "was a single, mutable production surface shared by every customer worldwide," any behavioral improvement, "even changing a counter-intuitive default or modernizing an error format," risked breaking existing scripts or required a multi-year migration. Google calls the replacement interface-based versioning, aligned with its own AIP-185, which requires stable versions to be dates and previews to be time-bound. Each stable version is a locked snapshot of all generally available features and defaults at that date, and no breaking change is made to it after publication.





