Compute: images.get sends unsupported API version after rev20261026, still in rev20261106

未关闭
#33,941 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
38/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
java

调研方向

Read the generated Compute.Images.Get implementation linked in the issue and compare its API_VERSION with the supported versions in the captured server error. Then trace where that generated version comes from in the Compute discovery input or regeneration process; the issue does not name those files. Done means establishing whether 2026-11-01 is supported for stable images.get and identifying the corrected generated client or supported artifact version.

由索引模型根据 Issue 内容生成。

描述

Summary

Upgrading com.google.apis:google-api-services-compute from v1-rev20261016-2.9.2 to v1-rev20261026-2.9.2 changes the generated Compute.Images.Get request header from X-Goog-Api-Version: 2026-09-01 to X-Goog-Api-Version: 2026-11-01.

In the affected GCP integration-test run, image GET requests were repeatedly rejected with HTTP 400 because the service did not support 2026-11-01. This blocked image-related provisioning workflows.

The latest published release, v1-rev20261106-2.9.2 (checked on 2026-11-12), still sets the same header. Its Images.Get implementation is identical to the one in the failing release.

Environment details
  • API: Compute Engine API, stable v1, images.get.
  • Affected artifact: google-api-services-compute:v1-rev20261026-2.9.2.
  • Also checked: v1-rev20261106-2.9.2 (latest); baseline: v1-rev20261016-2.9.2.
  • Base client: com.google.api-client:google-api-client:2.9.2.
  • Independent header-only reproduction: Amazon Corretto Java 21.0.13, macOS 26.7.2, google-http-client and google-http-client-gson 2.2.0.
  • The exact OS/JDK build of the original failing CI run is not included in the available error report.
Steps to reproduce
  1. Use one of the Compute artifact versions listed above.
  2. Construct compute.images().get(project, image) without explicitly overriding the API-version header.
  3. Inspect request.getRequestHeaders().get("X-Goog-Api-Version"). The example below does not require credentials or make a network request.
  4. In the affected authenticated integration-test environment, executing the image GET with the newer artifact produced the HTTP 400 shown below.
Minimal code example

Dependencies (change the Compute version to compare releases):

implementation 'com.google.apis:google-api-services-compute:v1-rev20261106-2.9.2'
implementation 'com.google.http-client:google-http-client-gson:2.2.0'
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.client.testing.http.MockHttpTransport;
import com.google.api.services.compute.Compute;

public class ComputeApiVersionRepro {
    public static void main(String[] args) throws Exception {
        Compute compute = new Compute.Builder(
                new MockHttpTransport(), GsonFactory.getDefaultInstance(), null)
                .setApplicationName("compute-api-version-repro")
                .build();

        Compute.Images.Get request = compute.images()
                .get("example-project", "example-image");
        System.out.println(request.getRequestHeaders().get("X-Goog-Api-Version"));
    }
}

I compiled this example and ran it separately with each of the three published Compute JARs, holding the supporting classpath constant:

Compute artifact version Printed API-version header
v1-rev20261016-2.9.2 2026-09-01
v1-rev20261026-2.9.2 2026-11-01
v1-rev20261106-2.9.2 2026-11-01
Observed server error

Captured from the failing integration-test run; project and image names are replaced with placeholders:

400 Bad Request
GET https://compute.googleapis.com/compute/v1/projects/<project>/global/images/<image>
Invalid API version '2026-11-01' provided. Supported API versions are [v1, 2026-10-01-preview, 2026-09-01]

I have independently verified the generated headers and published sources, but have not rerun an authenticated GCP request to establish whether server-side support for 2026-11-01 has changed since this error was captured.

Expected behavior

A generated stable-v1 client should select an API version accepted by the Compute service, so an existing images.get call does not start failing solely because of a client-library update.

Source evidence

The latest generated Compute.Images.Get sets:

private static final String API_VERSION = "2026-11-01";
// In the request constructor:
if (headers.get(API_VERSION_HEADER) == null) {
  headers.set(API_VERSION_HEADER, API_VERSION);
}
Current mitigation / requested clarification

We have reverted the dependency bump and pinned v1-rev20261016-2.9.2, whose generated header is one of the versions listed as supported in the captured error.

Please confirm whether 2026-11-01 is intended and fully available for stable Compute images.get, or whether the discovery/generated client needs to be corrected. Please also identify the recommended supported artifact version for this regression.

主要语言
Java
星标
731
派生
402
平均合并
5 小时 43 分钟
30 天内合并 PR
959

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

googleapis/google-api-java-client-services 的其他 Issue

查看 googleapis/google-api-java-client-services 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。