nikolauspschuetz commented on issue #64891: URL: https://github.com/apache/airflow/issues/64891#issuecomment-4813965845
I'd like to pick this up. Confirmed it still reproduces on current `main`: `DagFileProcessorManager.prepare_callback_bundle()` (airflow-core/src/airflow/dag_processing/manager.py, the `if bundle.supports_versioning and request.bundle_version:` guard) skips `bundle.initialize()` whenever `request.bundle_version` is None — e.g. with bundle versioning disabled. The queued `DagFileInfo` is then built from `bundle.path` before the versioned bundle has been materialized, so the Dag-level callback is dispatched against an uninitialized bundle path. Proposed direction: for bundles where `supports_versioning` is true, initialize the bundle before reading `bundle.path` even when `bundle_version` is None (resolving to the current/"latest" materialized version), while leaving non-versioning bundles untouched. I'll add a unit test in `test_manager.py` asserting the bundle is initialized and the queued `DagFileInfo` carries the initialized path for the `bundle_version=None` case (the topology-dependent end-to-end repro from the linked #52040 thread isn't practical in CI, so the unit test pins the behavior). The earlier PR #64942 was closed for inactivity; I'll open a fresh PR rather than reviving it, scoping the condition carefully so versioned bundles that *do* carry an explicit version keep their current behavior. Does that direction look right? --- Drafted-by: Claude Code (Opus 4.8); reviewed by @nikolauspschuetz before posting -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
