When a transform is fixed and pushed, downstream metrics that depend on it stay INVALID because dj push skips nodes whose specs haven't changed. The skip vs deploy decision evaluates each node independently without considering whether any of its upstreams are being updated.
To fix, add a graph-aware promotion step after initial filtering nodes that moves skipped nodes into the deploy set if any transitive upstream dependencies are being deployed.
When a transform is fixed and pushed, downstream metrics that depend on it stay INVALID because dj push skips nodes whose specs haven't changed. The skip vs deploy decision evaluates each node independently without considering whether any of its upstreams are being updated.
To fix, add a graph-aware promotion step after initial filtering nodes that moves skipped nodes into the deploy set if any transitive upstream dependencies are being deployed.