bug(web-ng): mapper #967

Closed
opened 2026-03-28 04:30:21 +00:00 by mfreeman451 · 0 comments
Owner

Imported from GitHub.

Original GitHub issue: #2704
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/2704
Original created: 2026-02-05T03:30:37Z


Describe the bug

Just saw this in the logs on the demo server, I wasn't the one that triggered this so I don't know what instigated it:

03:22:31.208 [error] GenServer #PID<0.13144.0> terminating
** (KeyError) key :agents not found in:

    %{
      form: %Phoenix.HTML.Form{
        source: %{
          "agent_id" => "",
          "concurrency" => 10,
          "description" => "",
          "discovery_mode" => "snmp_api",
          "discovery_type" => "full",
          "enabled" => true,
          "interval" => "2h",
          "name" => "",
          "partition" => "default",
          "retries" => 2,
          "timeout" => "45s"
        },
        impl: Phoenix.HTML.FormData.Map,
        id: "mapper_job",
        name: "mapper_job",
        data: %{},
        action: nil,
        hidden: [],
        params: %{
          "agent_id" => "",
          "concurrency" => 10,
          "description" => "",
          "discovery_mode" => "snmp_api",
          "discovery_type" => "full",
          "enabled" => true,
          "interval" => "2h",
          "name" => "",
          "partition" => "default",
          "retries" => 2,
          "timeout" => "45s"
        },
        errors: [],
        options: [],
        index: nil
      },
      __changed__: nil,
      __given__: %{
        form: %Phoenix.HTML.Form{
          source: %{
            "agent_id" => "",
            "concurrency" => 10,
            "description" => "",
            "discovery_mode" => "snmp_api",
            "discovery_type" => "full",
            "enabled" => true,
            "interval" => "2h",
            "name" => "",
            "partition" => "default",
            "retries" => 2,
            "timeout" => "45s"
          },
          impl: Phoenix.HTML.FormData.Map,
          id: "mapper_job",
          name: "mapper_job",
          data: %{},
          action: nil,
          hidden: [],
          params: %{
            "agent_id" => "",
            "concurrency" => 10,
            "description" => "",
            "discovery_mode" => "snmp_api",
            "discovery_type" => "full",
            "enabled" => true,
            "interval" => "2h",
            "name" => "",
            "partition" => "default",
            "retries" => 2,
            "timeout" => "45s"
          },
          errors: [],
          options: [],
          index: nil
        },
        __changed__: nil,
        jobs: [
          %ServiceRadar.NetworkDiscovery.MapperJob{
            id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9",
            name: "tonka01",
            description: nil,
            enabled: true,
            interval: "5m",
            partition: "default",
            agent_id: "agent-dusk",
            discovery_mode: :snmp_api,
            discovery_type: :full,
            concurrency: 10,
            timeout: "45s",
            retries: 2,
            options: %{},
            last_run_at: ~U[2026-02-05 03:18:53Z],
            last_run_status: :success,
            last_run_interface_count: 78,
            last_run_error: nil,
            inserted_at: ~U[2026-01-28 21:54:15.946683Z],
            updated_at: ~U[2026-02-05 03:18:53.730279Z],
            seeds: [
              %ServiceRadar.NetworkDiscovery.MapperSeed{
                id: "4c7bb86c-3535-47ca-903b-d102af8dffdd",
                seed: "192.168.10.1",
                mapper_job_id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9",
                inserted_at: ~U[2026-02-03 23:37:35.947046Z],
                updated_at: ~U[2026-02-03 23:37:35.947046Z],
                mapper_job: #Ash.NotLoaded<:relationship, field: :mapper_job>,
                ...
              }
            ],
            unifi_controllers: [
              %ServiceRadar.NetworkDiscovery.MapperUnifiController{
                id: "6523a3cd-4c4d-4c09-96d9-40064a2d9714",
                name: "tonka01",
                base_url: "https://192.168.10.1/proxy/network/integration/v1",
                insecure_skip_verify: true,
                ...
              }
            ],
            __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs">
          },
          %ServiceRadar.NetworkDiscovery.MapperJob{
            id: "340c1db1-df38-465d-b3d6-0b3785b31ec9",
            name: "farm01",
            description: nil,
            enabled: true,
            interval: "2h",
            partition: "default",
            agent_id: "agent-dusk",
            discovery_mode: :snmp_api,
            discovery_type: :full,
            concurrency: 10,
            timeout: "45s",
            retries: 2,
            options: %{},
            last_run_at: ~U[2026-02-05 01:59:13Z],
            last_run_status: :success,
            last_run_interface_count: 31,
            last_run_error: nil,
            inserted_at: ~U[2026-01-31 04:36:48.873756Z],
            updated_at: ~U[2026-02-05 01:59:13.818927Z],
            seeds: [
              %ServiceRadar.NetworkDiscovery.MapperSeed{
                id: "124d1871-7072-46b3-a44c-219d41f375cb",
                seed: "192.168.2.1",
                mapper_job_id: "340c1db1-df38-465d-b3d6-0b3785b31ec9",
                inserted_at: ~U[2026-02-03 23:35:57.298761Z],
                updated_at: ~U[2026-02-03 23:35:57.298761Z],
                ...
              }
            ],
            unifi_controllers: [
              %ServiceRadar.NetworkDiscovery.MapperUnifiController{
                id: "9ce7fd9f-eb0e-4467-a2ae-f8cab7cd090b",
                name: "farm01",
                base_url: "https://192.168.2.1/proxy/network/integration/v1",
                ...
              }
            ],
            __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs">
          }
        ],
        show_form: :new_mapper_job,
        mapper_command_statuses: %{},
        can_manage_networks: true,
        seeds_text: "",
        unifi_form: %Phoenix.HTML.Form{
          source: %{},
          impl: Phoenix.HTML.FormData.Map,
          id: "unifi",
          name: "unifi",
          data: %{},
          action: nil,
          hidden: [],
          params: %{},
          errors: [],
          options: [],
          index: nil
        },
        unifi_present: false
      },
      jobs: [
        %ServiceRadar.NetworkDiscovery.MapperJob{
          id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9",
          name: "tonka01",
          description: nil,
          enabled: true,
          interval: "5m",
          partition: "default",
          agent_id: "agent-dusk",
          ...
        },
        %ServiceRadar.NetworkDiscovery.MapperJob{
          id: "340c1db1-df38-465d-b3d6-0b3785b31ec9",
          name: "farm01",
          description: nil,
          enabled: true,
          interval: "2h",
          partition: "default",
          ...
        }
      ],
      show_form: :new_mapper_job,
      mapper_command_statuses: %{},
      can_manage_networks: true,
      seeds_text: "",
      unifi_form: %Phoenix.HTML.Form{source: %{}, ...},
      ...
    }

    (serviceradar_web_ng 0.1.0) lib/serviceradar_web_ng_web/live/settings/networks_live/index.ex:1102: anonymous fn/3 in ServiceRadarWebNGWeb.Settings.NetworksLive.Index."discovery_panel (overridable 1)"/1
    (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:420: Phoenix.LiveView.Diff.traverse/6
    (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6
    (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3
    (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6
    (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6
    (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3
    (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6
Process Label: {Phoenix.LiveView, ServiceRadarWebNGWeb.Settings.NetworksLive.Index, "lv:phx-GJE7p-YKyEquefwB"}
Last message: {Phoenix.Channel, %{"flash" => nil, "params" => %{"_csrf_token" => "Gy0JBQEEAS4QX00KHCxmczQ7CQJEXT8p_kCtlryAx5tHu_RBkABK5-fd", "_live_referer" => "https://demo.serviceradar.cloud/settings/networks/discovery", "_mount_attempts" = (truncated)
03:22:31.212 [error] an exception was raised:
    ** (KeyError) key :agents not found in:

    %{
      form: %Phoenix.HTML.Form{
        source: %{
          "agent_id" => "",
          "concurrency" => 10,
          "description" => "",
          "discovery_mode" => "snmp_api",
          "discovery_type" => "full",
          "enabled" => true,
          "interval" => "2h",
          "name" => "",
          "partition" => "default",
          "retries" => 2,
          "timeout" => "45s"
        },
        impl: Phoenix.HTML.FormData.Map,
        id: "mapper_job",
        name: "mapper_job",
        data: %{},
        action: nil,
        hidden: [],
        params: %{
          "agent_id" => "",
          "concurrency" => 10,
          "description" => "",
          "discovery_mode" => "snmp_api",
          "discovery_type" => "full",
          "enabled" => true,
          "interval" => "2h",
          "name" => "",
          "partition" => "default",
          "retries" => 2,
          "timeout" => "45s"
        },
        errors: [],
        options: [],
        index: nil
      },
      __changed__: nil,
      __given__: %{
        form: %Phoenix.HTML.Form{
          source: %{
            "agent_id" => "",
            "concurrency" => 10,
            "description" => "",
            "discovery_mode" => "snmp_api",
            "discovery_type" => "full",
            "enabled" => true,
            "interval" => "2h",
            "name" => "",
            "partition" => "default",
            "retries" => 2,
            "timeout" => "45s"
          },
          impl: Phoenix.HTML.FormData.Map,
          id: "mapper_job",
          name: "mapper_job",
          data: %{},
          action: nil,
          hidden: [],
          params: %{
            "agent_id" => "",
            "concurrency" => 10,
            "description" => "",
            "discovery_mode" => "snmp_api",
            "discovery_type" => "full",
            "enabled" => true,
            "interval" => "2h",
            "name" => "",
            "partition" => "default",
            "retries" => 2,
            "timeout" => "45s"
          },
          errors: [],
          options: [],
          index: nil
        },
        __changed__: nil,
        jobs: [
          %ServiceRadar.NetworkDiscovery.MapperJob{
            id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9",
            name: "tonka01",
            description: nil,
            enabled: true,
            interval: "5m",
            partition: "default",
            agent_id: "agent-dusk",
            discovery_mode: :snmp_api,
            discovery_type: :full,
            concurrency: 10,
            timeout: "45s",
            retries: 2,
            options: %{},
            last_run_at: ~U[2026-02-05 03:18:53Z],
            last_run_status: :success,
            last_run_interface_count: 78,
            last_run_error: nil,
            inserted_at: ~U[2026-01-28 21:54:15.946683Z],
            updated_at: ~U[2026-02-05 03:18:53.730279Z],
            seeds: [
              %ServiceRadar.NetworkDiscovery.MapperSeed{
                id: "4c7bb86c-3535-47ca-903b-d102af8dffdd",
                seed: "192.168.10.1",
                mapper_job_id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9",
                inserted_at: ~U[2026-02-03 23:37:35.947046Z],
                updated_at: ~U[2026-02-03 23:37:35.947046Z],
                mapper_job: #Ash.NotLoaded<:relationship, field: :mapper_job>,
                ...
              }
            ],
            unifi_controllers: [
              %ServiceRadar.NetworkDiscovery.MapperUnifiController{
                id: "6523a3cd-4c4d-4c09-96d9-40064a2d9714",
                name: "tonka01",
                base_url: "https://192.168.10.1/proxy/network/integration/v1",
                insecure_skip_verify: true,
                ...
              }
            ],
            __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs">
          },
          %ServiceRadar.NetworkDiscovery.MapperJob{
            id: "340c1db1-df38-465d-b3d6-0b3785b31ec9",
            name: "farm01",
            description: nil,
            enabled: true,
            interval: "2h",
            partition: "default",
            agent_id: "agent-dusk",
            discovery_mode: :snmp_api,
            discovery_type: :full,
            concurrency: 10,
            timeout: "45s",
            retries: 2,
            options: %{},
            last_run_at: ~U[2026-02-05 01:59:13Z],
            last_run_status: :success,
            last_run_interface_count: 31,
            last_run_error: nil,
            inserted_at: ~U[2026-01-31 04:36:48.873756Z],
            updated_at: ~U[2026-02-05 01:59:13.818927Z],
            seeds: [
              %ServiceRadar.NetworkDiscovery.MapperSeed{
                id: "124d1871-7072-46b3-a44c-219d41f375cb",
                seed: "192.168.2.1",
                mapper_job_id: "340c1db1-df38-465d-b3d6-0b3785b31ec9",
                inserted_at: ~U[2026-02-03 23:35:57.298761Z],
                updated_at: ~U[2026-02-03 23:35:57.298761Z],
                ...
              }
            ],
            unifi_controllers: [
              %ServiceRadar.NetworkDiscovery.MapperUnifiController{
                id: "9ce7fd9f-eb0e-4467-a2ae-f8cab7cd090b",
                name: "farm01",
                base_url: "https://192.168.2.1/proxy/network/integration/v1",
                ...
              }
            ],
            __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs">
          }
        ],
        show_form: :new_mapper_job,
        mapper_command_statuses: %{},
        can_manage_networks: true,
        seeds_text: "",
        unifi_form: %Phoenix.HTML.Form{
          source: %{},
          impl: Phoenix.HTML.FormData.Map,
          id: "unifi",
          name: "unifi",
          data: %{},
          action: nil,
          hidden: [],
          params: %{},
          errors: [],
          options: [],
          index: nil
        },
        unifi_present: false
      },
      jobs: [
        %ServiceRadar.NetworkDiscovery.MapperJob{
          id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9",
          name: "tonka01",
          description: nil,
          enabled: true,
          interval: "5m",
          partition: "default",
          agent_id: "agent-dusk",
          ...
        },
        %ServiceRadar.NetworkDiscovery.MapperJob{
          id: "340c1db1-df38-465d-b3d6-0b3785b31ec9",
          name: "farm01",
          description: nil,
          enabled: true,
          interval: "2h",
          partition: "default",
          ...
        }
      ],
      show_form: :new_mapper_job,
      mapper_command_statuses: %{},
      can_manage_networks: true,
      seeds_text: "",
      unifi_form: %Phoenix.HTML.Form{source: %{}, ...},
      ...
    }

        (serviceradar_web_ng 0.1.0) lib/serviceradar_web_ng_web/live/settings/networks_live/index.ex:1102: anonymous fn/3 in ServiceRadarWebNGWeb.Settings.NetworksLive.Index."discovery_panel (overridable 1)"/1
        (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:420: Phoenix.LiveView.Diff.traverse/6
        (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6
        (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3
        (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6
        (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6
        (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3
        (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6
03:22:35.324 [info] CONNECTED TO Phoenix.LiveView.Socket in 24�s
  Transport: :longpoll
  Serializer: Phoenix.Socket.V2.JSONSerial

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Imported from GitHub. Original GitHub issue: #2704 Original author: @mfreeman451 Original URL: https://github.com/carverauto/serviceradar/issues/2704 Original created: 2026-02-05T03:30:37Z --- **Describe the bug** Just saw this in the logs on the demo server, I wasn't the one that triggered this so I don't know what instigated it: ``` 03:22:31.208 [error] GenServer #PID<0.13144.0> terminating ** (KeyError) key :agents not found in: %{ form: %Phoenix.HTML.Form{ source: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, impl: Phoenix.HTML.FormData.Map, id: "mapper_job", name: "mapper_job", data: %{}, action: nil, hidden: [], params: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, errors: [], options: [], index: nil }, __changed__: nil, __given__: %{ form: %Phoenix.HTML.Form{ source: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, impl: Phoenix.HTML.FormData.Map, id: "mapper_job", name: "mapper_job", data: %{}, action: nil, hidden: [], params: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, errors: [], options: [], index: nil }, __changed__: nil, jobs: [ %ServiceRadar.NetworkDiscovery.MapperJob{ id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9", name: "tonka01", description: nil, enabled: true, interval: "5m", partition: "default", agent_id: "agent-dusk", discovery_mode: :snmp_api, discovery_type: :full, concurrency: 10, timeout: "45s", retries: 2, options: %{}, last_run_at: ~U[2026-02-05 03:18:53Z], last_run_status: :success, last_run_interface_count: 78, last_run_error: nil, inserted_at: ~U[2026-01-28 21:54:15.946683Z], updated_at: ~U[2026-02-05 03:18:53.730279Z], seeds: [ %ServiceRadar.NetworkDiscovery.MapperSeed{ id: "4c7bb86c-3535-47ca-903b-d102af8dffdd", seed: "192.168.10.1", mapper_job_id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9", inserted_at: ~U[2026-02-03 23:37:35.947046Z], updated_at: ~U[2026-02-03 23:37:35.947046Z], mapper_job: #Ash.NotLoaded<:relationship, field: :mapper_job>, ... } ], unifi_controllers: [ %ServiceRadar.NetworkDiscovery.MapperUnifiController{ id: "6523a3cd-4c4d-4c09-96d9-40064a2d9714", name: "tonka01", base_url: "https://192.168.10.1/proxy/network/integration/v1", insecure_skip_verify: true, ... } ], __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs"> }, %ServiceRadar.NetworkDiscovery.MapperJob{ id: "340c1db1-df38-465d-b3d6-0b3785b31ec9", name: "farm01", description: nil, enabled: true, interval: "2h", partition: "default", agent_id: "agent-dusk", discovery_mode: :snmp_api, discovery_type: :full, concurrency: 10, timeout: "45s", retries: 2, options: %{}, last_run_at: ~U[2026-02-05 01:59:13Z], last_run_status: :success, last_run_interface_count: 31, last_run_error: nil, inserted_at: ~U[2026-01-31 04:36:48.873756Z], updated_at: ~U[2026-02-05 01:59:13.818927Z], seeds: [ %ServiceRadar.NetworkDiscovery.MapperSeed{ id: "124d1871-7072-46b3-a44c-219d41f375cb", seed: "192.168.2.1", mapper_job_id: "340c1db1-df38-465d-b3d6-0b3785b31ec9", inserted_at: ~U[2026-02-03 23:35:57.298761Z], updated_at: ~U[2026-02-03 23:35:57.298761Z], ... } ], unifi_controllers: [ %ServiceRadar.NetworkDiscovery.MapperUnifiController{ id: "9ce7fd9f-eb0e-4467-a2ae-f8cab7cd090b", name: "farm01", base_url: "https://192.168.2.1/proxy/network/integration/v1", ... } ], __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs"> } ], show_form: :new_mapper_job, mapper_command_statuses: %{}, can_manage_networks: true, seeds_text: "", unifi_form: %Phoenix.HTML.Form{ source: %{}, impl: Phoenix.HTML.FormData.Map, id: "unifi", name: "unifi", data: %{}, action: nil, hidden: [], params: %{}, errors: [], options: [], index: nil }, unifi_present: false }, jobs: [ %ServiceRadar.NetworkDiscovery.MapperJob{ id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9", name: "tonka01", description: nil, enabled: true, interval: "5m", partition: "default", agent_id: "agent-dusk", ... }, %ServiceRadar.NetworkDiscovery.MapperJob{ id: "340c1db1-df38-465d-b3d6-0b3785b31ec9", name: "farm01", description: nil, enabled: true, interval: "2h", partition: "default", ... } ], show_form: :new_mapper_job, mapper_command_statuses: %{}, can_manage_networks: true, seeds_text: "", unifi_form: %Phoenix.HTML.Form{source: %{}, ...}, ... } (serviceradar_web_ng 0.1.0) lib/serviceradar_web_ng_web/live/settings/networks_live/index.ex:1102: anonymous fn/3 in ServiceRadarWebNGWeb.Settings.NetworksLive.Index."discovery_panel (overridable 1)"/1 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:420: Phoenix.LiveView.Diff.traverse/6 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6 (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6 (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6 Process Label: {Phoenix.LiveView, ServiceRadarWebNGWeb.Settings.NetworksLive.Index, "lv:phx-GJE7p-YKyEquefwB"} Last message: {Phoenix.Channel, %{"flash" => nil, "params" => %{"_csrf_token" => "Gy0JBQEEAS4QX00KHCxmczQ7CQJEXT8p_kCtlryAx5tHu_RBkABK5-fd", "_live_referer" => "https://demo.serviceradar.cloud/settings/networks/discovery", "_mount_attempts" = (truncated) 03:22:31.212 [error] an exception was raised: ** (KeyError) key :agents not found in: %{ form: %Phoenix.HTML.Form{ source: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, impl: Phoenix.HTML.FormData.Map, id: "mapper_job", name: "mapper_job", data: %{}, action: nil, hidden: [], params: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, errors: [], options: [], index: nil }, __changed__: nil, __given__: %{ form: %Phoenix.HTML.Form{ source: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, impl: Phoenix.HTML.FormData.Map, id: "mapper_job", name: "mapper_job", data: %{}, action: nil, hidden: [], params: %{ "agent_id" => "", "concurrency" => 10, "description" => "", "discovery_mode" => "snmp_api", "discovery_type" => "full", "enabled" => true, "interval" => "2h", "name" => "", "partition" => "default", "retries" => 2, "timeout" => "45s" }, errors: [], options: [], index: nil }, __changed__: nil, jobs: [ %ServiceRadar.NetworkDiscovery.MapperJob{ id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9", name: "tonka01", description: nil, enabled: true, interval: "5m", partition: "default", agent_id: "agent-dusk", discovery_mode: :snmp_api, discovery_type: :full, concurrency: 10, timeout: "45s", retries: 2, options: %{}, last_run_at: ~U[2026-02-05 03:18:53Z], last_run_status: :success, last_run_interface_count: 78, last_run_error: nil, inserted_at: ~U[2026-01-28 21:54:15.946683Z], updated_at: ~U[2026-02-05 03:18:53.730279Z], seeds: [ %ServiceRadar.NetworkDiscovery.MapperSeed{ id: "4c7bb86c-3535-47ca-903b-d102af8dffdd", seed: "192.168.10.1", mapper_job_id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9", inserted_at: ~U[2026-02-03 23:37:35.947046Z], updated_at: ~U[2026-02-03 23:37:35.947046Z], mapper_job: #Ash.NotLoaded<:relationship, field: :mapper_job>, ... } ], unifi_controllers: [ %ServiceRadar.NetworkDiscovery.MapperUnifiController{ id: "6523a3cd-4c4d-4c09-96d9-40064a2d9714", name: "tonka01", base_url: "https://192.168.10.1/proxy/network/integration/v1", insecure_skip_verify: true, ... } ], __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs"> }, %ServiceRadar.NetworkDiscovery.MapperJob{ id: "340c1db1-df38-465d-b3d6-0b3785b31ec9", name: "farm01", description: nil, enabled: true, interval: "2h", partition: "default", agent_id: "agent-dusk", discovery_mode: :snmp_api, discovery_type: :full, concurrency: 10, timeout: "45s", retries: 2, options: %{}, last_run_at: ~U[2026-02-05 01:59:13Z], last_run_status: :success, last_run_interface_count: 31, last_run_error: nil, inserted_at: ~U[2026-01-31 04:36:48.873756Z], updated_at: ~U[2026-02-05 01:59:13.818927Z], seeds: [ %ServiceRadar.NetworkDiscovery.MapperSeed{ id: "124d1871-7072-46b3-a44c-219d41f375cb", seed: "192.168.2.1", mapper_job_id: "340c1db1-df38-465d-b3d6-0b3785b31ec9", inserted_at: ~U[2026-02-03 23:35:57.298761Z], updated_at: ~U[2026-02-03 23:35:57.298761Z], ... } ], unifi_controllers: [ %ServiceRadar.NetworkDiscovery.MapperUnifiController{ id: "9ce7fd9f-eb0e-4467-a2ae-f8cab7cd090b", name: "farm01", base_url: "https://192.168.2.1/proxy/network/integration/v1", ... } ], __meta__: #Ecto.Schema.Metadata<:loaded, "platform", "mapper_jobs"> } ], show_form: :new_mapper_job, mapper_command_statuses: %{}, can_manage_networks: true, seeds_text: "", unifi_form: %Phoenix.HTML.Form{ source: %{}, impl: Phoenix.HTML.FormData.Map, id: "unifi", name: "unifi", data: %{}, action: nil, hidden: [], params: %{}, errors: [], options: [], index: nil }, unifi_present: false }, jobs: [ %ServiceRadar.NetworkDiscovery.MapperJob{ id: "84bcd36b-1e1e-4f73-856a-0e9962d546b9", name: "tonka01", description: nil, enabled: true, interval: "5m", partition: "default", agent_id: "agent-dusk", ... }, %ServiceRadar.NetworkDiscovery.MapperJob{ id: "340c1db1-df38-465d-b3d6-0b3785b31ec9", name: "farm01", description: nil, enabled: true, interval: "2h", partition: "default", ... } ], show_form: :new_mapper_job, mapper_command_statuses: %{}, can_manage_networks: true, seeds_text: "", unifi_form: %Phoenix.HTML.Form{source: %{}, ...}, ... } (serviceradar_web_ng 0.1.0) lib/serviceradar_web_ng_web/live/settings/networks_live/index.ex:1102: anonymous fn/3 in ServiceRadarWebNGWeb.Settings.NetworksLive.Index."discovery_panel (overridable 1)"/1 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:420: Phoenix.LiveView.Diff.traverse/6 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6 (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:609: anonymous fn/3 in Phoenix.LiveView.Diff.traverse_dynamic/6 (elixir 1.19.4) lib/enum.ex:2520: Enum."-reduce/3-lists^foldl/2-0-"/3 (phoenix_live_view 1.1.19) lib/phoenix_live_view/diff.ex:419: Phoenix.LiveView.Diff.traverse/6 03:22:35.324 [info] CONNECTED TO Phoenix.LiveView.Socket in 24�s Transport: :longpoll Serializer: Phoenix.Socket.V2.JSONSerial ``` **To Reproduce** Steps to reproduce the behavior: 1. Go to '...' 2. Click on '....' 3. Scroll down to '....' 4. See error **Expected behavior** A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] - Version [e.g. 22] **Smartphone (please complete the following information):** - Device: [e.g. iPhone6] - OS: [e.g. iOS8.1] - Browser [e.g. stock browser, safari] - Version [e.g. 22] **Additional context** Add any other context about the problem here.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar#967
No description provided.