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]

Reply via email to