diff --git a/CHANGELOG.md b/CHANGELOG.md
index 850f0195ac60215984686232d03f747502506bc7..6d665e3b8fee4a31bb28ae49504bfc5819bf23cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [Unreleased]
+
+### Fixed
+
+- Corrected `_parse_distributions` of `ODSHDCATdeProfile` to not rely on resource dict, fixing missing `id` errors.
+
 ## [2.5.0] - 2025-01-30
 
 ### Fixed
diff --git a/ckanext/odsh/profiles/odsh_dcat_de_profile.py b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
index eb57db6025cd897335de0ddcc8e74f269e29086c..0162e3f387b51876e26e2f44ce06f33b9ba714fe 100644
--- a/ckanext/odsh/profiles/odsh_dcat_de_profile.py
+++ b/ckanext/odsh/profiles/odsh_dcat_de_profile.py
@@ -42,18 +42,16 @@ class ODSHDCATdeProfile(DCATdeProfile):
             self._mark_for_adding_to_ckan_collection(dataset_dict, dataset_ref)
         return dataset_dict
 
+    # Duplicate licenseAttributionByText property of first distribution to extras
     def _parse_distributions(self, dataset_dict, dataset_ref):
         for distribution in self.g.objects(dataset_ref, DCAT.distribution):
-            for resource_dict in dataset_dict.get('resources', []):
-                # Match distribution in graph and distribution in ckan-dict
-                if str(distribution) == resource_uri(resource_dict):
-                    for namespace in [DCATDE, DCATDE_1_0, DCATDE_1_0_1, DCATDE_1_0_2]:
-                        value = self._object_value(
-                            distribution, namespace.licenseAttributionByText)
-                        if value:
-                            ds_utils.insert_new_extras_field(
-                                dataset_dict, 'licenseAttributionByText', value)
-                            return
+            for namespace in [DCATDE, DCATDE_1_0, DCATDE_1_0_1, DCATDE_1_0_2]:
+                value = self._object_value(
+                    distribution, namespace.licenseAttributionByText)
+                if value:
+                    ds_utils.insert_new_extras_field(
+                        dataset_dict, 'licenseAttributionByText', value)
+                    return
 
     def _parse_type(self, dataset_dict, dataset_ref):
         dct_type = self._object(dataset_ref, DCT.type)