From 3b51b5dc6890fe12525aab45d79321eeacb13217 Mon Sep 17 00:00:00 2001 From: Dan LaManna Date: Mon, 13 Feb 2023 10:02:54 -0500 Subject: [PATCH] Skip computing assets summary for invalid assets --- dandiapi/api/services/metadata/__init__.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dandiapi/api/services/metadata/__init__.py b/dandiapi/api/services/metadata/__init__.py index afd5ba1f7..c98b375a9 100644 --- a/dandiapi/api/services/metadata/__init__.py +++ b/dandiapi/api/services/metadata/__init__.py @@ -73,9 +73,14 @@ def version_aggregate_assets_summary(version: Version): if version.version != 'draft': raise VersionHasBeenPublished() - version.metadata['assetsSummary'] = aggregate_assets_summary( - version.assets.values_list('metadata', flat=True).iterator() - ) + try: + version.metadata['assetsSummary'] = aggregate_assets_summary( + version.assets.values_list('metadata', flat=True).iterator() + ) + except Exception: + # The assets summary aggregation may fail if any asset metadata is invalid, skip + # updating it if it fails. + logger.info('Error calculating assetsSummary', exc_info=True) Version.objects.filter(id=version.id, version='draft').update( modified=timezone.now(), metadata=version.metadata