diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py index 735a101b40e3e615602c2586ef3bcb8cded638cf..00bb7d45b0b1b98176d74f58075866392a53898c 100644 --- a/api/funkwhale_api/federation/serializers.py +++ b/api/funkwhale_api/federation/serializers.py @@ -708,23 +708,7 @@ class AudioSerializer(serializers.Serializer): except (KeyError, TypeError): raise serializers.ValidationError('Missing mediaType') - if not media_type.startswith('audio/'): - raise serializers.ValidationError('Invalid mediaType') - - return url - - def validate_url(self, v): - try: - url = v['href'] - except (KeyError, TypeError): - raise serializers.ValidationError('Missing href') - - try: - media_type = v['mediaType'] - except (KeyError, TypeError): - raise serializers.ValidationError('Missing mediaType') - - if not media_type.startswith('audio/'): + if not media_type or not media_type.startswith('audio/'): raise serializers.ValidationError('Invalid mediaType') return v diff --git a/changes/changelog.d/media-type.bugfix b/changes/changelog.d/media-type.bugfix new file mode 100644 index 0000000000000000000000000000000000000000..cf6abf97de347b58722cb20223ee60736c6b7cd5 --- /dev/null +++ b/changes/changelog.d/media-type.bugfix @@ -0,0 +1 @@ +Fail graciously when AP representation includes a null_value for mediaType