Skip to content

Stop pull sync from re-calling a partner for a row that is full #1551

Open

Description

@dhruv8sh

Follow-up from PR #1487.

Description

When a row is at the 16 KiB cap, a pull-sync write is refused, the partner's slot stays empty and no completion marker is issued. Every navigation then reads the row, sends the EC ID to the partner and discards the answer. Batch sync's row_full is permanent for that row in the same way.

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

Either treat a size refusal as terminal for that partner in pull-sync eligibility, or reserve headroom for partner IDs by capping provider growth below MAX_ENTRY_BYTES.

Acceptance criteria

  • A row at the size cap no longer causes a partner call on every navigation (size refusal is terminal for pull-sync eligibility, or partner headroom is reserved).
  • Batch sync row_full behaviour is consistent with the chosen approach.
  • A test shows a full row is not re-called on the next navigation.

Affected area

Core (Edge Cookies, GDPR)

Code: crates/trusted-server-core/src/ec/kv.rs (size refusal); ec/pull_sync.rs (eligibility, entry_is_pull_complete).

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. 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 wave 5 (MVP: Fastly and Axum); priority P2, size S.

    Blocked by:

    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