Bundle verifier rejects the schema_version 2 history exports that Server 2.5.14 produces #190
Copy link
Copy link
Open
Description
Problem
The published Python SDK's offline bundle verifier refuses every history export that published PHP Server 2.5.14 (Workflow 2.5.5) produces.
durable_workflow.history_bundle_verify (durable-workflow 2.7.0 from PyPI) supports only BUNDLE_SCHEMA_VERSION = 1. HistoryExport::forRun in Workflow 2.5.5 emits schema_version: 2. Every bundle therefore reports:
error bundle.schema_version_unsupported Bundle schema_version [2] is unsupported; expected 1.
and the overall status is failed, so a promotion gate built on the verifier rejects good bundles.
Reproduce
- Start
ghcr.io/durable-workflow/server@sha256:28fa0f3968ea253c727aad7fe583bb61c788553f1e4b96ece6ea4570d20faf42(2.5.14). - Run any workflow to completion.
GET /api/workflows/{id}/runs/{run}/history/exportand save the body asbundle.json.pip install durable-workflow==2.7.0 && python -m durable_workflow.history_bundle_verify bundle.json
Expected
The verifier accepts the schema versions the published server emits, and keeps refusing only unknown future versions.
Found while qualifying the native server's history export (durable-workflow/server#325). The native export also emits schema_version 2, and apart from that rule it verifies cleanly.
Metadata
Metadata
Assignees
Labels
No labels
Activity
rmcdaniel commentedon Oct 23, 2026
Duplicate of #173, which tracks the same hardcoded schema-version-1 refusal and already includes current published-runtime waiting/completed exports, preservation of version-1 behavior, integrity controls and installed-package acceptance. This report adds the Server 2.5.14 / Python 2.7.0 observation; retain it here as evidence. The defect is still open in #173; closing this duplicate does not claim a fix or authorize rewriting exported bundles.
rmcdaniel commentedon Oct 23, 2026
Reopening to retain this report’s distinct Server 2.5.14 / Python 2.7.0 and native-export compatibility observation alongside #173, which tracks the current-runtime waiting/completed exports and broader integrity/installed acceptance. They share the schema-version refusal, but verification must retain both artifact contexts. The earlier duplicate closure did not establish either context as fixed.