Changing a filter
Resume restores a previous subscription. Rebind explicitly creates a new filter generation. Sending a changed filter with an old token in ordinary subscribe causes a binding mismatch.
Safe sequence
- Finish old processing through a locally committed checkpoint.
- Send
rebindwith the active subscription ID andexpectedGeneration, a new filter and explicit start mode. - Wait for the new
subscribed; save its generation, hash and frozen mappings. - Process its cut through batches, checkpoints and
caught_up. - ACK only with the new generation.
This complete template uses a synthetic condition and placeholder token. Substitute a known permitted condition and a checkpoint from the real current session.
History and permissions
The new predicate does not reinterpret the old cursor. Resume scans after the selected old checkpoint using the new filter; it does not request all earlier history for the new market. Old-generation ACKs are invalid after rebind.
Rebind does not expand the current lease’s scopes or reservation. A wider scope can require a new connection and authentication. Do not bypass a refusal by multiplying keys or subscription IDs.
If rebind is rejected, do not assume the new generation exists. Recover the agreed state using recovery. See frames for exact fields.
