Skip to content

fix(gcp/computeengine): a short non-empty idempotency token silently drops the insert RequestId #488

Closed

Description

@cristim

Problem

providers/gcp/services/computeengine/client.go (:873) sets the commitment insert RequestId from common.IdempotencyGUID(token), which returns "" for a non-empty token shorter than 32 hex chars. The RequestId is then silently dropped. idempotentCommitmentName (:1436-1442) already rejects non-hex tokens earlier, and the deterministic commitment name still dedupes a re-drive, so the remaining gap is a short all-hex token (e.g. abc) losing request-level idempotency without any error.

Expected

Use common.OrderIDFromToken (added in #487) or an equivalent check so a non-empty token that cannot form a GUID fails before the insert, and replace the package's unexported errInvalidIdempotencyToken (~:1451) with common.ErrInvalidIdempotencyToken. Needs the GCP pkg pin bumped past #487 (GCP pins a different pkg version than Azure).

Found while planning #104 (A09-020). Real producers (DeriveIdempotencyToken, 64-char hex) are unaffected.

Activity

  1. self-assigned this
    on Oct 17, 2026
  2. cristim commented on Oct 17, 2026

    @cristim
    MemberAuthor

    Claiming: working on this.

  3. added a commit that references this issue on Oct 17, 2026
    8a85908
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions