diff --git a/src/tdcp.cpp b/src/tdcp.cpp
index e56c28506a70813966adeeba9f81b7e3c1b354f3..ad76131b3d47f4ce0db4e67a8a3e898d05ec3cd2 100644
--- a/src/tdcp.cpp
+++ b/src/tdcp.cpp
@@ -13,9 +13,19 @@ TdcpOutput Tdcp(SnapshotPtr               snapshot_r,
                 const TdcpBatchParams&    tdcp_params,
                 const Options&            opt)
 {
+    auto pos_output = computePos(*snapshot_r->getObservations(), *snapshot_r->getNavigation(), opt);
+
+    if (not pos_output.success)
+    {
+        TdcpOutput output;
+        output.success = false;
+        output.msg = "Couldn't compute fix for snapshot_r: " + pos_output.msg;
+        return output;
+    }
+
     return Tdcp(snapshot_r,
                 snapshot_k,
-                computePos(*snapshot_r->getObservations(), *snapshot_r->getNavigation(), opt).pos,
+                pos_output.pos,
                 d_0,
                 discarded_sats,
                 tdcp_params,