Hmbown/CodeWhale · error · PersistenceBacklogError

baseline_observation must retain the final request and…

Error message

baseline_observation must retain the final request and payload

What it means

After confirming the applied version, validate_budget requires the baseline observation to have retained at least one queued request and a non-zero estimated retained payload. A zero on either means the baseline did not actually retain the final request, contradicting the fixture's paused-consumer semantics, so the baseline is rejected as unusable for budget comparison.

Solutions

  1. Re-run the measurement with the consumer paused so the final request stays queued and is retained.
  2. Verify measure-persistence-backlog.py wrote non-zero retained_queued_requests/estimated_retained_payload_bytes into the receipt before copying it into the baseline.
  3. Do not hand-zero these fields; regenerate the baseline instead.

Example fix

// before
"baseline_observation": { ..., "retained_queued_requests": 0, "estimated_retained_payload_bytes": 0 }
// after
"baseline_observation": { ..., "retained_queued_requests": 1, "estimated_retained_payload_bytes": 65536 }
Defensive patterns

Strategy: validation

Validate before calling

b = budget.get("baseline_observation", {})
if not b.get("retained_queued_requests") or not b.get("estimated_retained_payload_bytes"):
    raise ValueError("baseline must retain the final request and payload")

Try / catch

try:
    compare(budget, baseline_receipt)
except PersistenceBacklogError as e:
    if "retain" in str(e): regenerate_baseline()

Prevention

When it happens

Trigger: `compare` reads a baseline_observation where retained_queued_requests == 0 or estimated_retained_payload_bytes == 0 — e.g. a baseline captured with the consumer unpaused so all requests drained.

Common situations: Measurement run with the paused consumer flag flipped, baseline produced from the wrong scenario, or someone zeroing fields while editing the budget.

Understand the failure class

Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.

Related errors


AI-assisted analysis of Hmbown/CodeWhale@433685b202 (2026-09-15). Data as JSON: /api/errors/9cfda0939923c57c. Report an issue: GitHub.

Appendix: source

Thrown at scripts/check-persistence-backlog-budget.py:287

            )
    baseline_accepted = non_negative_integer(
        baseline.get("accepted_requests"), "baseline_observation.accepted_requests"
    )
    if baseline_accepted != FIXTURE["requests_attempted"]:
        raise PersistenceBacklogError(
            "baseline_observation.accepted_requests must equal requests_attempted"
        )
    baseline_applied = non_negative_integer(
        baseline.get("applied_version"), "baseline_observation.applied_version"
    )
    if baseline_applied != FIXTURE["expected_applied_version"]:
        raise PersistenceBacklogError(
            "baseline_observation.applied_version must be the final sent version"
        )
    baseline_retained = baseline["retained_queued_requests"]
    baseline_payload = baseline["estimated_retained_payload_bytes"]
    if baseline_retained == 0 or baseline_payload == 0:
        raise PersistenceBacklogError(
            "baseline_observation must retain the final request and payload"
        )
    if baseline_retained > baseline_accepted:
        raise PersistenceBacklogError(
            "baseline_observation.retained_queued_requests exceeds accepted_requests"
        )
    if baseline_payload < baseline_retained * FIXTURE["content_bytes_per_request"]:
        raise PersistenceBacklogError(
            "baseline_observation payload is smaller than frozen retained content"
        )
    provenance = baseline.get("provenance")
    if not isinstance(provenance, dict):
        raise PersistenceBacklogError("baseline_observation needs provenance")
    if provenance.get("platform") != "macos":
        raise PersistenceBacklogError("baseline provenance platform must be macos")
    if not isinstance(provenance.get("source_sha"), str) or not SOURCE_SHA_PATTERN.fullmatch(
        provenance["source_sha"]
    ):

View on GitHub (pinned to 433685b202)