diff --git a/mergin/client_pull.py b/mergin/client_pull.py index 3398ec7f..6e29b392 100644 --- a/mergin/client_pull.py +++ b/mergin/client_pull.py @@ -573,7 +573,13 @@ def pull_project_finalize(job, user_name): os.remove(basefile) raise ClientError("Cannot patch basefile {}! Please try syncing again.".format(basefile)) - conflicts = job.mp.apply_pull_changes(job.pull_changes, job.temp_dir, user_name) + try: + conflicts = job.mp.apply_pull_changes(job.pull_changes, job.temp_dir, user_name) + except Exception as e: + job.mp.log.error("Failed to apply pull changes: " + str(e)) + job.mp.log.info("--- pull aborted") + raise ClientError("Failed to apply pull changes: " + str(e)) + job.mp.metadata = { 'name': job.project_path, 'version': job.version if job.version else "v0", # for new projects server version is "" diff --git a/mergin/client_push.py b/mergin/client_push.py index cc9020c4..b3ed1763 100644 --- a/mergin/client_push.py +++ b/mergin/client_push.py @@ -281,7 +281,12 @@ def push_project_finalize(job): 'version': job.server_resp['version'], 'files': job.server_resp["files"] } - job.mp.apply_push_changes(job.changes) + try: + job.mp.apply_push_changes(job.changes) + except Exception as e: + job.mp.log.error("Failed to apply push changes: " + str(e)) + job.mp.log.info("--- push aborted") + raise ClientError("Failed to apply push changes: " + str(e)) job.tmp_dir.cleanup() # delete our temporary dir and all its content