Skip to content

🤖 Aggregated API watches never hold: LIST has no resourceVersion and watch-list returns 400 #217

Description

@ThomasK33

Problem

Aggregated API watches for coderworkspaces and codertemplates do not work for standard clients:

  • LIST responses carry no resourceVersion.
  • With the WatchList feature gate on (default since Kubernetes 1.34, vendored apiserver v0.35.0), a watch with resourceVersion "" or "0" becomes sendInitialEvents=true. Storage rejects that with 400 (validateUnsupportedWatchListOptions). apiserverapp/watch_options_integration_test.go pins this.
  • So kubectl get -w and plain client-go informers never hold a watch. They relist with backoff. Changes made directly in Coder never produce watch events in any namespace, because only writes through this apiserver feed the broadcaster.

The final assessment of #214 found this. It predates #214, and #214 left Watch unchanged.

Proposal (to be designed)

Return a meaningful list resourceVersion and support watch-list or real watch semantics, or document that watches are not supported and clients must poll.


Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: medium

Activity

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

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions