diff --git a/src/engine.liq b/src/engine.liq
index 168bd7d3ed83370aec967f3cabe1977f8c1b6eff..97d0466af6172a7301ef85bb6b270477797854b5 100644
--- a/src/engine.liq
+++ b/src/engine.liq
@@ -39,8 +39,10 @@ inputs = ref ([])
 
 # Called when some new metadata info is available
 def on_metadata_notification(meta) =
+    log(level=5, label="metadata", "Raw metadata before POST:\n\n #{meta}\n\n")
+
     show_name = ref(list.assoc(default="", "show_name", meta))
-    show_id = ref(list.assoc(default="-1", "show_id", meta))
+    show_id = ref(list.assoc(default="", "show_id", meta))
     timeslot_id = list.assoc(default="-1", "timeslot_id", meta)
     playlist_id = list.assoc(default="-1", "playlist_id", meta)
     playlist_track_num = list.assoc(default="", "playlist_item", meta)
@@ -53,11 +55,13 @@ def on_metadata_notification(meta) =
 
     source_type = eval_source_type(meta["source"])
     if source_type == "fallback" then
-        log("Detected FALLBACK playing (Show ID: #{!engine_fallback_show_id})")
+        log(level=3, label="metadata", "Detected FALLBACK playing \
+            (Show ID: #{!engine_fallback_show_id})")
         show_name := !engine_fallback_show_name
         show_id := !engine_fallback_show_id
     elsif source_type == "queue" then
-        log("ERROR in metadata handling: Invalid source type #{source_type}")
+        log(level=3, label="metadata", "ERROR in metadata handling: \
+            Invalid source type #{source_type}")
     end
 
     playlog = [
@@ -74,7 +78,11 @@ def on_metadata_notification(meta) =
         ("track_artist", track_artist),
         ("track_num", playlist_track_num)
     ]
-    post_playlog(!engine_api_playlog, playlog)
+    if playlog["show_id"] == "" then
+        log(level=3, label="metadata", "Skip posting playlog because of missing show ID!")
+    else
+        post_playlog(!engine_api_playlog, playlog)
+    end
 end