diff --git a/src/service.py b/src/service.py
index ddb5c496fbe2299aab00edf31f6e33d83bc50f9b..9073025127148899e854823f0eae251596b28071 100644
--- a/src/service.py
+++ b/src/service.py
@@ -147,9 +147,12 @@ class ApiService():
         if self.node_type == NodeType.MAIN or \
             (self.node_type == NodeType.SYNC and data.log_source == self.active_source):
 
-            playlog = PlayLog(data)
-            playlog.save()
-            self.logger.debug("Stored playlog for '%s'" % playlog.track_start)
+            try:
+                playlog = PlayLog(data)
+                playlog.save()
+                self.logger.debug("Stored playlog for '%s'" % playlog.track_start)
+            except sqlalchemy.exc.IntegrityError as e:
+                self.logger.info("Playlog for '%s' is already existing in local database. Skipping..." % playlog.track_start)
 
             # Main Node: Push to Sync Node, if enabled
             if self.node_type == NodeType.MAIN and self.sync_host and self.api_playlog:
@@ -164,7 +167,7 @@ class ApiService():
                         playlog.is_synced = True
                         playlog.save()
                     else:
-                        self.logger.error("Error while pushing playlog to sync-node: " + r.json())
+                        self.logger.error("Error while pushing playlog to sync-node: " + str(r.json()))
                 except Exception as e:
                     self.logger.error("Error while posting to sync-node API '%s'!\n%s" % (api_url, str(e)))
         else:
@@ -253,7 +256,7 @@ class ApiService():
                         playlog.is_synced = True
                         playlog.save()
                     else:
-                        self.logger.error("Error while pushing healthlog to sync-node: " + r.json())
+                        self.logger.error("Error while pushing healthlog to sync-node: " + str(r.json()))
                 except Exception as e:
                     self.logger.error("Error while posting to sync-node API '%s'!" % (api_url), e)
         else:
diff --git a/src/sync.py b/src/sync.py
index cfd189deacfc29bbc150fd17403851d31692f4ee..e5fd6514c3387bce13347e497876877d87f5162e 100644
--- a/src/sync.py
+++ b/src/sync.py
@@ -105,13 +105,16 @@ class SyncJob(threading.Thread):
 
                     # Store unsynced entries locally
                     for entry in entries:
-                        playlog = PlayLog(entry)
-                        self.Session.add(playlog)
-                        self.Session.commit()
 
-                        self.logger.info("Stored synced playlog for '%s'" % playlog.track_start)
-                        synced_entries += 1
-                        
+                        try:
+                            playlog = PlayLog(entry)
+                            self.Session.add(playlog)
+                            self.Session.commit()
+                            self.logger.info("Stored synced playlog for '%s'" % playlog.track_start)
+                            synced_entries += 1
+                        except sqlalchemy.exc.IntegrityError as e:
+                            self.logger.info("Playlog for '%s' is already existing in local database. Skipping..." % playlog.track_start)
+                
                         # Sleep a little to keep the effective load down low
                         time.sleep(self.config.get("sync_step_sleep"))
 
@@ -152,7 +155,7 @@ class SyncJob(threading.Thread):
             to_time = next_source.log_time
 
         try:
-            params = { "page": "0", "limit": self.sync_batch_size, "skip_synced": "true", "from": source.log_time, "to": to_time}
+            params = { "page": "0", "limit": self.sync_batch_size, "skip_synced": "true", "from_date": source.log_time, "to_date": to_time}
             url = self.get_url(source.source_number)
             response = requests.get(url, params=params)
             if response.status_code == 200: