diff --git a/livestreams.py b/livestreams.py
index 10c1606d2237ef3596632229b66d7398b3df6d34..3a852d1c46b5d03556536c4caeb0dd9d84984db8 100644
--- a/livestreams.py
+++ b/livestreams.py
@@ -230,7 +230,8 @@ def schedule_livestream(lecture_id):
 def restart_failed_complex_live_transcode(id, type, data, state, status):
 	restart_job(id)
 
-@job_handler('complex_live_transcode')
+@job_handler('complex_live_transcode', state='failed')
+@job_handler('complex_live_transcode', state='finished')
 def cleanup_after_complex_live_transcode_ended(id, type, data, state, status):
 	job = query('SELECT * FROM jobs WHERE id = ?', id, nlfix=False)[0]
 	if state == 'finished' or (state == 'failed' and job['canceled']):