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

53 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.