Is the `asset_reconciliation_sensor` supposed to w...
# ask-community
v
Is the
asset_reconciliation_sensor
supposed to work with cross-repository asset dependencies? I get a
KeyError
from the sensor when it detects a change in an upstream asset in a different repository, see stacktrace:
Copy code
KeyError: AssetKey(['my', 'cool', 'asset'])
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/errors.py", line 199, in user_code_error_boundary
    yield
  File "/app/venv/lib/python3.9/site-packages/dagster/_grpc/impl.py", line 324, in get_external_sensor_execution
    return sensor_def.evaluate_tick(sensor_context)
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/sensor_definition.py", line 425, in evaluate_tick
    result = list(self._evaluation_fn(context))
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/sensor_definition.py", line 589, in _wrapped_fn
    result = fn(context)
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/asset_reconciliation_sensor.py", line 858, in sensor_fn
    run_requests, updated_cursor = reconcile(
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/asset_reconciliation_sensor.py", line 694, in reconcile
    ) = determine_asset_partitions_to_reconcile(
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/asset_reconciliation_sensor.py", line 362, in determine_asset_partitions_to_reconcile
    all(
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/asset_reconciliation_sensor.py", line 374, in <genexpr>
    instance_queryer.is_reconciled(
  File "/app/venv/lib/python3.9/site-packages/dagster/_utils/cached_method.py", line 59, in helper
    result = method(self, *args, **kwargs)
  File "/app/venv/lib/python3.9/site-packages/dagster/_utils/caching_instance_queryer.py", line 205, in is_reconciled
    for parent in asset_graph.get_parents_partitions(
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/asset_graph.py", line 257, in get_parents_partitions
    for parent_asset_key in self.get_parents(asset_key):
  File "/app/venv/lib/python3.9/site-packages/dagster/_core/definitions/asset_graph.py", line 172, in get_parents
    return self.asset_dep_graph["upstream"][asset_key]
And the `RepositoryDefinition`; keeping in mind that all assets fetched from dbt depend on upstream `SourceAsset`s.
Copy code
@repository
def my_repo():
    project = "my_project"
    return [
        slack_on_run_failure,
        *with_resources(**generate_dbt_repo(project, DEPLOYMENT_NAME)),
        build_asset_reconciliation_sensor(
            AssetSelection.all(),
            name="reconciliation_sensor",
        )
    ]
j
it doesn’t support cross repo dependencies right now, but we are tracking it in this task https://github.com/dagster-io/dagster/issues/10724
v
Ah, perfect, thanks for the response 🙂
d
we’re also looking forward to having this functionality! thanks 🙂