diff --git a/src/Poe2Trade.Navigation/NavigationExecutor.cs b/src/Poe2Trade.Navigation/NavigationExecutor.cs index 29fafb9..81fb056 100644 --- a/src/Poe2Trade.Navigation/NavigationExecutor.cs +++ b/src/Poe2Trade.Navigation/NavigationExecutor.cs @@ -282,11 +282,24 @@ public class NavigationExecutor : IDisposable var sw = Stopwatch.StartNew(); var captureStart = sw.Elapsed.TotalMilliseconds; - await _pipeline.ProcessOneFrame(); + try + { + await _pipeline.ProcessOneFrame(); + } + catch (Exception ex) + { + Log.Warning(ex, "Pipeline capture failed"); + } var frame = _capture.LastFrame; var captureMs = sw.Elapsed.TotalMilliseconds - captureStart; - if (frame == null) return null; + if (frame == null) + { + // Pipeline didn't produce a frame — fall back to direct capture for debug stages + if (stage != MinimapDebugStage.WorldMap) + return _capture.CaptureStage(stage); + return null; + } var stitchStart = sw.Elapsed.TotalMilliseconds; var pos = _worldMap.MatchAndStitch(frame.ClassifiedMat, frame.WallMask, _capture.DetectedMode);