diff --git a/lib/towerops/workers/discovery_worker.ex b/lib/towerops/workers/discovery_worker.ex index a6c88412..0756a786 100644 --- a/lib/towerops/workers/discovery_worker.ex +++ b/lib/towerops/workers/discovery_worker.ex @@ -395,21 +395,30 @@ defmodule Towerops.Workers.DiscoveryWorker do # Check if discovery completed (last_discovery_at changed) true -> - device = Devices.get_device!(device_id) + case Devices.get_device_with_details(device_id) do + nil -> + Logger.warning( + "Device not found for discovery request", + device_id: device_id + ) - if device.last_discovery_at == initial_discovery_at do - # Wait 500ms before checking again - Process.sleep(500) - wait_loop(device_id, agent_token_id, initial_discovery_at, start_time, timeout_ms) - else - Logger.info( - "Agent discovery completed successfully", - device_id: device_id, - agent_token_id: agent_token_id, - elapsed_ms: elapsed - ) + {:error, :device_deleted} - :ok + device -> + if device.last_discovery_at == initial_discovery_at do + # Wait 500ms before checking again + Process.sleep(500) + wait_loop(device_id, agent_token_id, initial_discovery_at, start_time, timeout_ms) + else + Logger.info( + "Agent discovery completed successfully", + device_id: device_id, + agent_token_id: agent_token_id, + elapsed_ms: elapsed + ) + + :ok + end end end end