Files
wyndham-ARR/.project-docs/50-evidence/topics/2026-08-06-live-0805-review-migration-mismatch.md
2026-08-06 22:40:18 +08:00

3.4 KiB
Raw Permalink Blame History

Fresh 0805.XML v4 review blocked by live migration mismatch

Metadata

  • Date: 2026-08-06
  • Status: Historical root-cause record; resolved by the authorized live rollout
  • Scope: local authenticated 8766 Web runtime and controlled booking_test
  • Confidence: High; UI, PostgreSQL catalog/lifecycle, source identity, isolated processor replay and independent validator agree
  • Last verified: 2026-08-06

Observed behavior

  • The authenticated upload UI retained 0805.XML, displayed 处理失败 / 请求未完成, and showed zero August history rows with no browser console error.
  • PostgreSQL contains three fresh v4 runs (6163) and attempts (5355), all still running. Each has one committed private OSS source artifact but no delivery row, result identity, business date or finish timestamp.
  • All three source artifacts are 948,683 bytes and share SHA-256 40a40f09dd110cc9814df3da9c747d5b08c9f8357e703fe1ea96ebf8daaeede3 with historical run 58.
  • No Finance version and no outbox event references these new runs.

Root cause

  • Live booking_test has no ingestion.daily_review_cases, daily_review_items or daily_review_events relations. Its lifecycle checks also lack awaiting_review, review_required and delivery result review_required, proving 017 is not applied.
  • The live monthly publication validator body/comment matches migration 016's OSS-enabled definition, despite the checked-in applied-migration ledger still marking 016 pending. This is a migration-ledger conflict, not proof that 016 must be rerun.
  • The exact local XML under active processor 4.0.0 returns technical success review_required, 151 candidate rows and exactly two grouped keys: LIAN TAI / LBLT / 0 and LIAN TAI / GRP1 / 1150. It creates only result/structured JSON. The independent validator accepts this review output.
  • During live ingestion, the atomic review receipt attempts to insert the missing review case and is wrapped as DATABASE_WRITE_FAILED; the delivery transaction rolls back. Best-effort terminalization then queries the same missing review table, fails and is swallowed, leaving the registered run/attempt shells running. The frontend has no specific translation for this code and displays generic 请求未完成.

Safe correction boundary

Do not convert or reopen runs 6163. After operator authorization, reconcile the live 016 signature with migration history, back up and probe/apply 017, explicitly terminalize the three infrastructure-failed shells with audit, reload and verify schema-aware readiness, then perform one fresh upload for the two-key review. No migration, shell cleanup, re-upload, review edit/finalization, Finance change, object-store write or runtime restart was performed in this diagnosis.

Resolution

The operator subsequently authorized the bounded correction. Migration-016 semantics were verified live and not rerun. A privacy-minimized checkpoint and corrected 017 up/down probe passed, then migration 017 was formally applied. Runs 6163 were closed as audited REVIEW_SCHEMA_MIGRATION_MISSING failures. The first post-migration acceptance identified and safely closed a separate delivery-placeholder defect; after that one-line SQL binding fix and restart, run 65 entered an open two-key review case with no Finance/report/outbox effect. See 2026-08-06-live-daily-price-review-rollout.md for authoritative rollout and acceptance evidence.