Skip to content

fix(collector): PM tape upload rejects quote_collection_failure kind, segments stuck since 2026-07-30 #533

Description

@proerror77

Change contract

polymarket-raw-ops upload must accept the quote_collection_failure record kind that new-ploy-runner legitimately writes into market tapes (empty / one-sided / non-executable books), instead of failing validation.

Evidence

Host monday-trade-data-26 (i-6we6afeqsvv8uo1ixmyo), 2026-07-31:
/data/monday/spool/polymarket/upload-status.json shows every segment since 2026-07-30T22:00 failing with unsupported update kind 'quote_collection_failure'; 14 segments pending, last_success_at=2026-07-30T22:35:06Z. Recorder emits these records per ploy-strategy-bundles/src/feed/recorded.rs (QuoteCollectionFailure "empty"/"non_executable"). Upload validator allowlist rust_hft/tools/collector/src/polymarket_upload.rs:24-34 (ALLOWED_KINDS) lacks the kind; scan bails at :976-977.

Acceptance

  • Upload validator accepts quote_collection_failure records with field-level validation consistent with the recorder's schema
  • Manifest quality fields reflect failure records (not counted as quotes) without weakening quote-coverage semantics
  • Unit tests: tape containing quote_collection_failure passes scan/validate; malformed failure records still rejected
  • After deploy, the 14 retained spool segments upload successfully (runtime evidence)

Out of scope

  • Binance reference kinds on PM tape (separate issue)
  • Tick-level sampling config change

Runtime control

Target: monday-trade-data-26 (ECS i-6we6afeqsvv8uo1ixmyo) polymarket-market-tape-upload.service
Candidate: current exact-main uploader binary (validator accepts quote_collection_failure since #239; regression tests merged in #543)
Controller: kimi (authorized by repo owner 2026-07-31)
Stop rule: after redeploy, upload-status.json still shows pending>0 for the 14 retained segments or new upload failures appear
Rollback: redeploy the previous uploader binary and restore the prior spool state

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingready-for-humanHuman implementation or judgment is requiredruntimeRequires deployment, runtime mutation, or live evidence for closure

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions