Crash when title tag is missing
Steps to reproduce
- Upload music without title tag
- Filetype unknown (Information follows)
What happens?
The Webui says, there is an unknown Error.
celeryworker_1 | [2020-05-09 18:38:51,277: ERROR/ForkPoolWorker-3] Task music.process_upload[7215d96e-be37-43cd-aa97-439b61bf82c2] raised unexpected: KeyError('title')
celeryworker_1 | Traceback (most recent call last):
celeryworker_1 | File "/venv/lib/python3.7/site-packages/celery/app/trace.py", line 385, in trace_task
celeryworker_1 | R = retval = fun(*args, **kwargs)
celeryworker_1 | File "/venv/lib/python3.7/site-packages/celery/app/trace.py", line 648, in protected_call
celeryworker_1 | return self.run(*args, **kwargs)
celeryworker_1 | File "/app/funkwhale_api/taskapp/celery.py", line 57, in inner
celeryworker_1 | return function(*args, **kwargs)
celeryworker_1 | File "/app/funkwhale_api/music/tasks.py", line 243, in process_upload
celeryworker_1 | final_metadata, attributed_to=upload.library.actor, **forced_values
celeryworker_1 | File "/usr/lib/python3.7/contextlib.py", line 74, in inner
celeryworker_1 | return func(*args, **kwds)
celeryworker_1 | File "/app/funkwhale_api/music/tasks.py", line 465, in get_track_from_import_metadata
celeryworker_1 | track = _get_track(data, attributed_to=attributed_to, **forced_values)
celeryworker_1 | File "/app/funkwhale_api/music/tasks.py", line 652, in _get_track
celeryworker_1 | else truncate(data["title"], models.MAX_LENGTHS["TRACK_TITLE"])
celeryworker_1 | File "/usr/lib/python3.7/collections/__init__.py", line 916, in getitem
celeryworker_1 | return self.missing(key) # support subclasses that define missing
celeryworker_1 | File "/usr/lib/python3.7/collections/__init__.py", line 908, in missing
celeryworker_1 | raise KeyError(key)
celeryworker_1 | KeyError: 'title'
What is expected?
The Exception is fetched and a more useful error message is shown
Context
Funkwhale version(s) affected: 0.21