Skip to content

Do not send a cookie EC with no row as user.id #1549

Open

Description

@dhruv8sh

Follow-up from PR #1487.

Description

A well-formed ts-ec cookie whose row does not exist still goes to bidders as user.id (and as request.id = ts-{ec}) on the navigation auction, page-bids and /auction. Orphan recovery then rotates the EC on the navigation, so bidders received an ID that is abandoned immediately. This matches main, so it is not a regression.

Reproduction steps

  1. Configure an enabled identity provider (fictional example: example-provider, https://id.example.com).
  2. Exercise the path described above with a test EC (for example ec-0000-test).
  3. Observe the behaviour described.

Expected behavior

Set user.id only when kv_snapshot().entry_for(ec) holds a consented row, the same rule provider dispatch now uses. Document it as a bidder-visible change.

Acceptance criteria

  • user.id (and request.id = ts-{ec}) is set only when the snapshot holds a consented row for the EC, on the navigation auction, page-bids and /auction.
  • A cookie EC with no row produces no user.id, pinned by a test.
  • The change is documented as bidder-visible (CHANGELOG).

Affected area

Core (Edge Cookies, GDPR)

Code: crates/trusted-server-core/src/publisher.rs (the user.id filter near the auction build); auction/endpoints.rs (the /auction snapshot read).

Version

main with PR #1487 (feat/s2s-eid-after-response).

Review threads

Activity

  1. added this to the 202611 milestone on Nov 11, 2026
  2. self-assigned this
    on Nov 11, 2026
  3. added theissue type on Nov 11, 2026
  4. dhruv8sh commented on Nov 12, 2026

    @dhruv8sh
    CollaboratorAuthor

    Related change in #1487 (c92c1d3): an orphaned EC's skip-only lookup results are now dropped instead of being retargeted to the replacement EC, since dispatch no longer runs lookups for a cookie EC without a row.

  5. aram356 commented on Nov 13, 2026

    @aram356
    Collaborator

    CREATOR: This issue is now part of #1558, server-side identity on every adapter. It is planned in an any row (no fixed wave; starts when its decision or reviewer is ready; after the MVP); priority P2, size S.

    Blocked by:

    Waits on these decisions:

    Related pull requests:

    Design: spec; order and dependencies: plan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions