53 lines
3.4 KiB
Markdown
53 lines
3.4 KiB
Markdown
# 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 (61–63) and attempts (53–55), 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 61–63. 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 61–63 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.
|